summaryrefslogtreecommitdiff
path: root/compat
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2016-01-20 11:43:29 -0800
committerLibravatar Junio C Hamano <gitster@pobox.com>2016-01-20 11:43:29 -0800
commita736764a7b61534581021a21bc6bfc503b9cfa8f (patch)
treeafc0d6affb5a41ef36c169200c17deadbc4d0ff8 /compat
parentMerge branch 'ew/send-email-mutt-alias-fix' (diff)
parentbswap: add NO_UNALIGNED_LOADS define (diff)
downloadtgif-a736764a7b61534581021a21bc6bfc503b9cfa8f.tar.xz
Merge branch 'jk/clang-pedantic'
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 7fed637ed0..d47c003544 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))