aboutsummaryrefslogtreecommitdiff
path: root/compat
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-02-05 14:54:09 -0800
committerJunio C Hamano <gitster@pobox.com>2016-02-05 14:54:09 -0800
commit6e29ac23027ed9993c32e1f68d79068498a25165 (patch)
treefdf1b56baebc6685b22811304302184d948eb751 /compat
parent25b1166ab2d4cb1685ecc26a36c35756ed5e1d4d (diff)
parenta0df2e5a7efe90e932af66e70ba6c863a5826833 (diff)
downloadgit-6e29ac23027ed9993c32e1f68d79068498a25165.tar.gz
git-6e29ac23027ed9993c32e1f68d79068498a25165.tar.xz
Merge branch 'jk/clang-pedantic' into maint
A few unportable C construct have been spotted by clang compiler and have been fixed. * jk/clang-pedantic: bswap: add NO_UNALIGNED_LOADS define avoid shifting signed integers 31 bits
Diffstat (limited to 'compat')
-rw-r--r--compat/bswap.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/compat/bswap.h b/compat/bswap.h
index 7fed637ed..d47c00354 100644
--- a/compat/bswap.h
+++ b/compat/bswap.h
@@ -149,11 +149,12 @@ static inline uint64_t git_bswap64(uint64_t x)
* and is faster on architectures with memory alignment issues.
*/
-#if defined(__i386__) || defined(__x86_64__) || \
+#if !defined(NO_UNALIGNED_LOADS) && ( \
+ defined(__i386__) || defined(__x86_64__) || \
defined(_M_IX86) || defined(_M_X64) || \
defined(__ppc__) || defined(__ppc64__) || \
defined(__powerpc__) || defined(__powerpc64__) || \
- defined(__s390__) || defined(__s390x__)
+ defined(__s390__) || defined(__s390x__))
#define get_be16(p) ntohs(*(unsigned short *)(p))
#define get_be32(p) ntohl(*(unsigned int *)(p))