From c584171cf842d3054d926b9b96150198bbd8d45e Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Tue, 18 Dec 2018 03:55:39 -0500 Subject: [PATCH] includes: Replace QEMU_GNUC_PREREQ with "__has_builtin || !defined(__clang__)" 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. Backports commit f773b423cc61f3ca18af5337101c158a52aaae2c from qemu --- qemu/include/qemu/host-utils.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qemu/include/qemu/host-utils.h b/qemu/include/qemu/host-utils.h index 040a64de..abd7759b 100644 --- a/qemu/include/qemu/host-utils.h +++ b/qemu/include/qemu/host-utils.h @@ -210,7 +210,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; @@ -226,7 +226,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;