Index: libc/src/__support/CPP/type_traits.h =================================================================== --- libc/src/__support/CPP/type_traits.h +++ libc/src/__support/CPP/type_traits.h @@ -218,6 +218,10 @@ details::void_t( declval()))>> = true; +#ifndef __has_builtin +#define __has_builtin(builtin) 0 +#endif + namespace details { #if __has_builtin(__is_lvalue_reference) && \ __has_builtin(__is_rvalue_reference) && __has_builtin(__is_reference) @@ -333,14 +337,12 @@ struct is_trivially_destructible : public integral_constant {}; -#elif __has_builtin(__has_trivial_destructor) - +#else template struct is_trivially_destructible : public integral_constant< bool, __llvm_libc::cpp::details::is_destructible::value &&__has_trivial_destructor(T)> {}; - #endif // __has_builtin(__is_trivially_destructible) } // namespace cpp