diff --git a/compiler-rt/lib/builtins/clzdi2.c b/compiler-rt/lib/builtins/clzdi2.c index 12c17982a5cb1..c0ea6da05a24f 100644 --- a/compiler-rt/lib/builtins/clzdi2.c +++ b/compiler-rt/lib/builtins/clzdi2.c @@ -14,12 +14,12 @@ // Returns: the number of leading 0-bits -#if !defined(__clang__) && \ - ((defined(__sparc__) && defined(__arch64__)) || defined(__mips64) || \ +#if ((defined(__sparc__) && defined(__arch64__)) || defined(__mips64) || \ (defined(__riscv) && __SIZEOF_POINTER__ >= 8)) // On 64-bit architectures with neither a native clz instruction nor a native -// ctz instruction, gcc resolves __builtin_clz to __clzdi2 rather than -// __clzsi2, leading to infinite recursion. +// ctz instruction, `__builtin_clz` resolves to `__clzdi2` rather than +// __clzsi2 as libgcc does not ship with `__clzsi2`, leading to infinite +// recursion. #define __builtin_clz(a) __clzsi2(a) extern int __clzsi2(si_int); #endif