]> git.proxmox.com Git - mirror_qemu.git/commitdiff
includes: Replace QEMU_GNUC_PREREQ with "__has_builtin || !defined(__clang__)"
authorThomas Huth <thuth@redhat.com>
Mon, 3 Dec 2018 13:33:12 +0000 (14:33 +0100)
committerThomas Huth <thuth@redhat.com>
Wed, 12 Dec 2018 09:01:13 +0000 (10:01 +0100)
Since we require GCC version 4.8 or newer now, we can be sure that
the builtin functions are always available on GCC. And for Clang,
we can check the availablility with __has_builtin instead.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
include/qemu/compiler.h
include/qemu/host-utils.h

index 6b927104876f564d5d70956653d1c4167d0454d1..1593bca41de04cbd9d43df24a9e5b64743301c1f 100644 (file)
 #define __has_builtin(x) 0 /* compatibility with non-clang compilers */
 #endif
 
-#if __has_builtin(__builtin_assume_aligned) || QEMU_GNUC_PREREQ(4, 7)
+#if __has_builtin(__builtin_assume_aligned) || !defined(__clang__)
 #define HAS_ASSUME_ALIGNED
 #endif
 
index 38da849be91f23ae80c14f836a4cda1189ce45ff..4cd170e6cd533fae0250ae3c9a933c3296dbf4cf 100644 (file)
@@ -207,7 +207,7 @@ static inline int cto64(uint64_t val)
  */
 static inline int clrsb32(uint32_t val)
 {
-#if QEMU_GNUC_PREREQ(4, 7)
+#if __has_builtin(__builtin_clrsb) || !defined(__clang__)
     return __builtin_clrsb(val);
 #else
     return clz32(val ^ ((int32_t)val >> 1)) - 1;
@@ -223,7 +223,7 @@ static inline int clrsb32(uint32_t val)
  */
 static inline int clrsb64(uint64_t val)
 {
-#if QEMU_GNUC_PREREQ(4, 7)
+#if __has_builtin(__builtin_clrsbll) || !defined(__clang__)
     return __builtin_clrsbll(val);
 #else
     return clz64(val ^ ((int64_t)val >> 1)) - 1;