diff options
author | Bruno Haible <bruno@clisp.org> | 2020-08-05 19:25:42 +0200 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2020-08-05 19:27:46 +0200 |
commit | 878c98336e9d915a9150eb473d5825d6dde7880d (patch) | |
tree | 0dd5067e69940738639026baea5835f09b20c418 /lib/integer_length_l.c | |
parent | 2b7f1c82ccb07b88bdccd6814f94f66f33230bb9 (diff) | |
download | gnulib-878c98336e9d915a9150eb473d5825d6dde7880d.tar.gz |
Use __builtin_clz{,l,ll} with clang, also on Windows.
* lib/integer_length.c: With clang, use the GCC built-in, not
<intrin.h>.
* lib/integer_length_l.c: Likewise.
* lib/count-leading-zeros.h (COUNT_LEADING_ZEROS): Use the GCC built-in
also on clang.
* lib/vasnprintf.c (divide): Likewise.
Diffstat (limited to 'lib/integer_length_l.c')
-rw-r--r-- | lib/integer_length_l.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/integer_length_l.c b/lib/integer_length_l.c index 161f1afa12..907a6dbcbb 100644 --- a/lib/integer_length_l.c +++ b/lib/integer_length_l.c @@ -41,7 +41,7 @@ # define MSVC_BUILTIN _BitScanReverse #endif -#if defined _MSC_VER +#if defined _MSC_VER && !(__clang_major__ >= 4) # include <intrin.h> /* Copied from integer_length.c. */ static inline int @@ -66,7 +66,7 @@ integer_length (unsigned int x) int FUNC (TYPE x) { -#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__clang_major__ >= 4) if (x == 0) return 0; else |