aboutsummaryrefslogtreecommitdiff
path: root/src/common/tuklib_integer.h
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2023-05-03 22:46:42 +0300
committerLasse Collin <lasse.collin@tukaani.org>2023-05-03 22:55:54 +0300
commite9b9ea953179502d5245b4e6ca4f5ffe9d5797b1 (patch)
treed0690680902f45ffbdeb4773d9f3fc7406886843 /src/common/tuklib_integer.h
parentUpdate THANKS. (diff)
downloadxz-e9b9ea953179502d5245b4e6ca4f5ffe9d5797b1.tar.xz
tuklib_integer.h: Fix a recent copypaste error in Clang detection.
Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7. Also, this has >= instead of == since ints larger than 32 bits would work too even if not relevant in practice.
Diffstat (limited to 'src/common/tuklib_integer.h')
-rw-r--r--src/common/tuklib_integer.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/common/tuklib_integer.h b/src/common/tuklib_integer.h
index aee1ad0d..24d9efb1 100644
--- a/src/common/tuklib_integer.h
+++ b/src/common/tuklib_integer.h
@@ -742,10 +742,10 @@ ctz32(uint32_t n)
#if defined(__INTEL_COMPILER)
return _bit_scan_forward(n);
-#elif TUKLIB_GNUC_REQ(3, 4) && UINT_MAX >= UINT32_MAX
+#elif (TUKLIB_GNUC_REQ(3, 4) || defined(__clang__)) && UINT_MAX >= UINT32_MAX
return (uint32_t)__builtin_ctz(n);
-#elif (TUKLIB_GNUC_REQ(3, 4) || defined(__clang__)) && UINT_MAX == UINT32_MAX
+#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
uint32_t i;
__asm__("bsfl %1, %0" : "=r" (i) : "rm" (n));
return i;