summaryrefslogtreecommitdiff
path: root/lib/integer_length_l.c
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2020-08-05 19:25:42 +0200
committerBruno Haible <bruno@clisp.org>2020-08-05 19:27:46 +0200
commit878c98336e9d915a9150eb473d5825d6dde7880d (patch)
tree0dd5067e69940738639026baea5835f09b20c418 /lib/integer_length_l.c
parent2b7f1c82ccb07b88bdccd6814f94f66f33230bb9 (diff)
downloadgnulib-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.c4
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