https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55899
Yann Droneaud <yann at droneaud dot fr> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |yann at droneaud dot fr --- Comment #2 from Yann Droneaud <yann at droneaud dot fr> --- I stumbled upon this issue again when dealing with uint64_t as sometimes it's defined as unsigned long, sometimes it's defined as unsigned long long depending on the ABI. Having __builtin_ffs64(), __builtin_clz64(), __builtin_ctz64(), etc. would ease me making my code portable to unpleasant ABI such as Microsoft Windows ones without having to use GCC's __builtin_types_compatible_p() (which is not supported when compiling C++), or C11 _Generic() ...