diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2015-02-04 16:11:15 -0500 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2015-02-04 16:11:15 -0500 |
commit | 3983935b0f7d5ece65bb8c6532af2f7ed27a197a (patch) | |
tree | 0b189e9025b20d9ec770b9e182fdf5e1584ffc7f | |
parent | 0cd479abf4636dfe9fe6cb02bdc19838addf3e90 (diff) | |
parent | a2e4593e8259c58b60579c5579330f03587a9ce6 (diff) | |
download | libgit2-3983935b0f7d5ece65bb8c6532af2f7ed27a197a.tar.gz |
Merge pull request #2872 from ethomson/pedantic
Fixes for pedantry
-rw-r--r-- | src/bswap.h | 97 | ||||
-rw-r--r-- | src/common.h | 1 | ||||
-rw-r--r-- | src/hash/hash_generic.c | 2 |
3 files changed, 1 insertions, 99 deletions
diff --git a/src/bswap.h b/src/bswap.h deleted file mode 100644 index 486df82f4..000000000 --- a/src/bswap.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ - -#include "common.h" - -/* - * Default version that the compiler ought to optimize properly with - * constant values. - */ -GIT_INLINE(uint32_t) default_swab32(uint32_t val) -{ - return (((val & 0xff000000) >> 24) | - ((val & 0x00ff0000) >> 8) | - ((val & 0x0000ff00) << 8) | - ((val & 0x000000ff) << 24)); -} - -#undef bswap32 - -GIT_INLINE(uint16_t) default_swab16(uint16_t val) -{ - return (((val & 0xff00) >> 8) | - ((val & 0x00ff) << 8)); -} - -#undef bswap16 - -#if defined(__GNUC__) && defined(__i386__) - -#define bswap32(x) ({ \ - uint32_t __res; \ - if (__builtin_constant_p(x)) { \ - __res = default_swab32(x); \ - } else { \ - __asm__("bswap %0" : "=r" (__res) : "0" ((uint32_t)(x))); \ - } \ - __res; }) - -#define bswap16(x) ({ \ - uint16_t __res; \ - if (__builtin_constant_p(x)) { \ - __res = default_swab16(x); \ - } else { \ - __asm__("xchgb %b0,%h0" : "=q" (__res) : "0" ((uint16_t)(x))); \ - } \ - __res; }) - -#elif defined(__GNUC__) && defined(__x86_64__) - -#define bswap32(x) ({ \ - uint32_t __res; \ - if (__builtin_constant_p(x)) { \ - __res = default_swab32(x); \ - } else { \ - __asm__("bswapl %0" : "=r" (__res) : "0" ((uint32_t)(x))); \ - } \ - __res; }) - -#define bswap16(x) ({ \ - uint16_t __res; \ - if (__builtin_constant_p(x)) { \ - __res = default_swab16(x); \ - } else { \ - __asm__("xchgb %b0,%h0" : "=Q" (__res) : "0" ((uint16_t)(x))); \ - } \ - __res; }) - -#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64)) - -#include <stdlib.h> - -#define bswap32(x) _byteswap_ulong(x) -#define bswap16(x) _byteswap_ushort(x) - -#endif - -#ifdef bswap32 - -#undef ntohl -#undef htonl -#define ntohl(x) bswap32(x) -#define htonl(x) bswap32(x) - -#endif - -#ifdef bswap16 - -#undef ntohs -#undef htons -#define ntohs(x) bswap16(x) -#define htons(x) bswap16(x) - -#endif diff --git a/src/common.h b/src/common.h index a8f60fe48..4b4a99775 100644 --- a/src/common.h +++ b/src/common.h @@ -58,7 +58,6 @@ #include "git2/types.h" #include "git2/errors.h" #include "thread-utils.h" -#include "bswap.h" #include <regex.h> diff --git a/src/hash/hash_generic.c b/src/hash/hash_generic.c index 32fcd869c..472a7a696 100644 --- a/src/hash/hash_generic.c +++ b/src/hash/hash_generic.c @@ -18,7 +18,7 @@ * rotate with a loop. */ -#define SHA_ASM(op, x, n) ({ unsigned int __res; __asm__(op " %1,%0":"=r" (__res):"i" (n), "0" (x)); __res; }) +#define SHA_ASM(op, x, n) (__extension__ ({ unsigned int __res; __asm__(op " %1,%0":"=r" (__res):"i" (n), "0" (x)); __res; })) #define SHA_ROL(x,n) SHA_ASM("rol", x, n) #define SHA_ROR(x,n) SHA_ASM("ror", x, n) |