We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents 68a2fdb + 5e56ffb commit c9fa624Copy full SHA for c9fa624
compat/bswap.h
@@ -35,7 +35,19 @@ static inline uint64_t default_bswap64(uint64_t val)
35
#undef bswap32
36
#undef bswap64
37
38
-#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
+/**
39
+ * __has_builtin is available since Clang 10 and GCC 10.
40
+ * Below is a fallback for older compilers.
41
+ */
42
+#ifndef __has_builtin
43
+ #define __has_builtin(x) 0
44
+#endif
45
+
46
+#if __has_builtin(__builtin_bswap32) && __has_builtin(__builtin_bswap64)
47
+#define bswap32(x) __builtin_bswap32((x))
48
+#define bswap64(x) __builtin_bswap64((x))
49
50
+#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
51
52
#define bswap32 git_bswap32
53
static inline uint32_t git_bswap32(uint32_t x)
0 commit comments