summaryrefslogtreecommitdiff
path: root/compat
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-01-20 19:43:29 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-01-20 19:43:29 (GMT)
commita736764a7b61534581021a21bc6bfc503b9cfa8f (patch)
treeafc0d6affb5a41ef36c169200c17deadbc4d0ff8 /compat
parent63aeeba99380cdf3b738ff10d3ab80f19286fcd1 (diff)
parenta0df2e5a7efe90e932af66e70ba6c863a5826833 (diff)
downloadgit-a736764a7b61534581021a21bc6bfc503b9cfa8f.zip
git-a736764a7b61534581021a21bc6bfc503b9cfa8f.tar.gz
git-a736764a7b61534581021a21bc6bfc503b9cfa8f.tar.bz2
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 7fed637..d47c003 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))