[AST][SVE] Treat built-in SVE types as trivial

Built-in SVE types are trivial, since they're trivially copyable
and support default construction.

Differential Revision: https://reviews.llvm.org/D76692
This commit is contained in:
Richard Sandiford 2020-03-03 11:27:57 +00:00
parent 35392660e6
commit c6824883cc
2 changed files with 4 additions and 0 deletions

View File

@ -2249,6 +2249,9 @@ bool QualType::isTrivialType(const ASTContext &Context) const {
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())

View File

@ -516,6 +516,7 @@ void cxx_only(int sel) {
_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), "");