diff --git a/clang/lib/AST/Type.cpp b/clang/lib/AST/Type.cpp --- a/clang/lib/AST/Type.cpp +++ b/clang/lib/AST/Type.cpp @@ -2249,6 +2249,9 @@ if ((*this)->isArrayType()) return Context.getBaseElementType(*this).isTrivialType(Context); + if ((*this)->isSizelessBuiltinType()) + return true; + // Return false for incomplete types after skipping any incomplete array // types which are expressly allowed by the standard and thus our API. if ((*this)->isIncompleteType()) diff --git a/clang/test/SemaCXX/sizeless-1.cpp b/clang/test/SemaCXX/sizeless-1.cpp --- a/clang/test/SemaCXX/sizeless-1.cpp +++ b/clang/test/SemaCXX/sizeless-1.cpp @@ -516,6 +516,7 @@ _Static_assert(!__is_literal(svint8_t), ""); _Static_assert(__is_pod(svint8_t), ""); _Static_assert(!__is_polymorphic(svint8_t), ""); + _Static_assert(__is_trivial(svint8_t), ""); _Static_assert(__is_object(svint8_t), ""); _Static_assert(!__is_arithmetic(svint8_t), ""); _Static_assert(!__is_floating_point(svint8_t), "");