}
}
+ // See if trivial_abi has to be dropped.
+ if (Record->hasAttr<TrivialABIAttr>())
+ checkIllFormedTrivialABIStruct(*Record);
+
// Set HasTrivialSpecialMemberForCall if the record has attribute
// "trivial_abi".
bool HasTrivialABI = Record->hasAttr<TrivialABIAttr>();
l->getName();
}
- // See if trivial_abi has to be dropped.
- auto *RD = dyn_cast<CXXRecordDecl>(TagDecl);
- if (RD && RD->hasAttr<TrivialABIAttr>())
- checkIllFormedTrivialABIStruct(*RD);
-
ActOnFields(S, RLoc, TagDecl, llvm::makeArrayRef(
// strict aliasing violation!
reinterpret_cast<Decl**>(FieldCollector->getCurFields()),
FieldCollector->getCurNumFields()), LBrac, RBrac, AttrList);
- CheckCompletedCXXClass(RD);
+ CheckCompletedCXXClass(dyn_cast_or_null<CXXRecordDecl>(TagDecl));
}
/// AddImplicitlyDeclaredMembersToClass - Adds any implicitly-declared
}
}
- // See if trivial_abi has to be dropped.
- if (Instantiation && Instantiation->hasAttr<TrivialABIAttr>())
- checkIllFormedTrivialABIStruct(*Instantiation);
-
// Finish checking fields.
ActOnFields(nullptr, Instantiation->getLocation(), Instantiation, Fields,
SourceLocation(), SourceLocation(), nullptr);