https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55899
--- Comment #3 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- C2x <stdbit.h> provides type-generic versions of various such operations, in addition to type-specific versions (but the type-specific versions are for unsigned char through unsigned long long, so don't themselves address the issue from this PR, and my view is that type-generic functions are error-prone in cases, such as clz, where the result depends on the type and not just the integer value of the argument). Since <stdbit.h> is a library facility (with functions thus expected to be available with external linkage to link against whether or not the header is included) I expect to implement it in due course in glibc, not GCC, though as usual built-in functions with the standard names would be appropriate in GCC.