[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 38/54] includes: Replace QEMU_GNUC_PREREQ with "__has
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 38/54] includes: Replace QEMU_GNUC_PREREQ with "__has_builtin || !defined(__clang__)" |
Date: |
Wed, 12 Dec 2018 16:22:59 +0100 |
From: Thomas Huth <address@hidden>
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 <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>
Message-Id: <address@hidden>
---
include/qemu/compiler.h | 2 +-
include/qemu/host-utils.h | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h
index 6f32ec2..a1e50ed 100644
--- a/include/qemu/compiler.h
+++ b/include/qemu/compiler.h
@@ -135,7 +135,7 @@
#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
diff --git a/include/qemu/host-utils.h b/include/qemu/host-utils.h
index 38da849..4cd170e 100644
--- a/include/qemu/host-utils.h
+++ b/include/qemu/host-utils.h
@@ -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;
--
1.8.3.1
- [Qemu-devel] [PULL 23/54] test: replace gtester with a TAP driver, (continued)
- [Qemu-devel] [PULL 23/54] test: replace gtester with a TAP driver, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 31/54] qemu/queue.h: simplify reverse access to QTAILQ, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 35/54] configure: Remove old -fno-gcse workaround for GCC 4.6.x and 4.7.[012], Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 29/54] qemu/queue.h: remove Q_TAILQ_{HEAD, ENTRY}, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 36/54] tcg/tcg.h: Remove GCC check for tcg_debug_assert() macro, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 33/54] configure: Add a test for the minimum compiler version, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 18/54] build-sys: don't include windows.h, osdep.h does it, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 37/54] audio/alsaaudio: Remove compiler check around pragma, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 27/54] qemu/queue.h: leave head structs anonymous unless necessary, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 30/54] qemu/queue.h: reimplement QTAILQ without pointer-to-pointers, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 38/54] includes: Replace QEMU_GNUC_PREREQ with "__has_builtin || !defined(__clang__)",
Paolo Bonzini <=
- [Qemu-devel] [PULL 40/54] hw/watchdog/wdt_i6300esb : remove a unnecessary comment, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 46/54] vhost-user-test: use g_cond_broadcast, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 42/54] vhost-net-user: add stubs for when no virtio-net device is present, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 43/54] vhost: restrict Linux dependency to kernel vhost, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 39/54] Remove QEMU_ARTIFICIAL macro, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 54/54] vhost-user-test: create a temporary directory per TestServer, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 49/54] vhost-user-test: support VHOST_USER_PROTOCOL_F_CROSS_ENDIAN, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 53/54] vhost-user-test: small changes to init_hugepagefs, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 52/54] vhost-user-test: create a main loop per TestServer, Paolo Bonzini, 2018/12/12
- [Qemu-devel] [PULL 48/54] vhost-user: support cross-endian vnet headers, Paolo Bonzini, 2018/12/12