https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66970
--- Comment #21 from Jonathan Wakely <redi at gcc dot gnu.org> --- Clang is changing __has_builtin so it recognizes all function-like built-ins, not just the ones starting with "__builtin_". See https://reviews.llvm.org/D66100 This means __has_builtin yields true for all of __is_aggregate, __builtin_launder and __builtin_offsetof.