@@ -7138,7 +7138,8 @@ void Sema::CheckCompletedCXXClass(Scope *S, CXXRecordDecl *Record) {
71387138 Record->finishedDefaultedOrDeletedMember(M);
71397139 M->setTrivialForCall(
71407140 HasTrivialABI ||
7141- SpecialMemberIsTrivial(M, CSM, TAH_ConsiderTrivialABI));
7141+ SpecialMemberIsTrivial(M, CSM,
7142+ TrivialABIHandling::ConsiderTrivialABI));
71427143 Record->setTrivialForCallFlags(M);
71437144 }
71447145 }
@@ -9997,8 +9998,7 @@ void Sema::DiagnoseDeletedDefaultedFunction(FunctionDecl *FD) {
99979998/// determine whether the special member is trivial.
99989999static bool findTrivialSpecialMember(Sema &S, CXXRecordDecl *RD,
999910000 CXXSpecialMemberKind CSM, unsigned Quals,
10000- bool ConstRHS,
10001- Sema::TrivialABIHandling TAH,
10001+ bool ConstRHS, TrivialABIHandling TAH,
1000210002 CXXMethodDecl **Selected) {
1000310003 if (Selected)
1000410004 *Selected = nullptr;
@@ -10041,7 +10041,7 @@ static bool findTrivialSpecialMember(Sema &S, CXXRecordDecl *RD,
1004110041 // A destructor is trivial if:
1004210042 // - all the direct [subobjects] have trivial destructors
1004310043 if (RD->hasTrivialDestructor() ||
10044- (TAH == Sema::TAH_ConsiderTrivialABI &&
10044+ (TAH == TrivialABIHandling::ConsiderTrivialABI &&
1004510045 RD->hasTrivialDestructorForCall()))
1004610046 return true;
1004710047
@@ -10058,7 +10058,7 @@ static bool findTrivialSpecialMember(Sema &S, CXXRecordDecl *RD,
1005810058 // A copy constructor is trivial if:
1005910059 // - the constructor selected to copy each direct [subobject] is trivial
1006010060 if (RD->hasTrivialCopyConstructor() ||
10061- (TAH == Sema::TAH_ConsiderTrivialABI &&
10061+ (TAH == TrivialABIHandling::ConsiderTrivialABI &&
1006210062 RD->hasTrivialCopyConstructorForCall())) {
1006310063 if (Quals == Qualifiers::Const)
1006410064 // We must either select the trivial copy constructor or reach an
@@ -10113,7 +10113,7 @@ static bool findTrivialSpecialMember(Sema &S, CXXRecordDecl *RD,
1011310113 if (Selected)
1011410114 *Selected = SMOR.getMethod();
1011510115
10116- if (TAH == Sema::TAH_ConsiderTrivialABI &&
10116+ if (TAH == TrivialABIHandling::ConsiderTrivialABI &&
1011710117 (CSM == CXXSpecialMemberKind::CopyConstructor ||
1011810118 CSM == CXXSpecialMemberKind::MoveConstructor))
1011910119 return SMOR.getMethod()->isTrivialForCall();
@@ -10155,8 +10155,7 @@ static bool checkTrivialSubobjectCall(Sema &S, SourceLocation SubobjLoc,
1015510155 QualType SubType, bool ConstRHS,
1015610156 CXXSpecialMemberKind CSM,
1015710157 TrivialSubobjectKind Kind,
10158- Sema::TrivialABIHandling TAH,
10159- bool Diagnose) {
10158+ TrivialABIHandling TAH, bool Diagnose) {
1016010159 CXXRecordDecl *SubRD = SubType->getAsCXXRecordDecl();
1016110160 if (!SubRD)
1016210161 return true;
@@ -10193,8 +10192,8 @@ static bool checkTrivialSubobjectCall(Sema &S, SourceLocation SubobjLoc,
1019310192 << Kind << SubType.getUnqualifiedType() << CSM;
1019410193
1019510194 // Explain why the defaulted or deleted special member isn't trivial.
10196- S.SpecialMemberIsTrivial(Selected, CSM, Sema::TAH_IgnoreTrivialABI,
10197- Diagnose);
10195+ S.SpecialMemberIsTrivial(Selected, CSM,
10196+ TrivialABIHandling::IgnoreTrivialABI, Diagnose);
1019810197 }
1019910198 }
1020010199
@@ -10205,8 +10204,7 @@ static bool checkTrivialSubobjectCall(Sema &S, SourceLocation SubobjLoc,
1020510204/// trivial.
1020610205static bool checkTrivialClassMembers(Sema &S, CXXRecordDecl *RD,
1020710206 CXXSpecialMemberKind CSM, bool ConstArg,
10208- Sema::TrivialABIHandling TAH,
10209- bool Diagnose) {
10207+ TrivialABIHandling TAH, bool Diagnose) {
1021010208 for (const auto *FI : RD->fields()) {
1021110209 if (FI->isInvalidDecl() || FI->isUnnamedBitField())
1021210210 continue;
@@ -10260,8 +10258,9 @@ void Sema::DiagnoseNontrivial(const CXXRecordDecl *RD,
1026010258 bool ConstArg = (CSM == CXXSpecialMemberKind::CopyConstructor ||
1026110259 CSM == CXXSpecialMemberKind::CopyAssignment);
1026210260 checkTrivialSubobjectCall(*this, RD->getLocation(), Ty, ConstArg, CSM,
10263- TSK_CompleteObject, TAH_IgnoreTrivialABI,
10264- /*Diagnose*/true);
10261+ TSK_CompleteObject,
10262+ TrivialABIHandling::IgnoreTrivialABI,
10263+ /*Diagnose*/ true);
1026510264}
1026610265
1026710266bool Sema::SpecialMemberIsTrivial(CXXMethodDecl *MD, CXXSpecialMemberKind CSM,
@@ -15906,7 +15905,7 @@ CXXConstructorDecl *Sema::DeclareImplicitCopyConstructor(
1590615905 (ClassDecl->needsOverloadResolutionForCopyConstructor()
1590715906 ? SpecialMemberIsTrivial(CopyConstructor,
1590815907 CXXSpecialMemberKind::CopyConstructor,
15909- TAH_ConsiderTrivialABI )
15908+ TrivialABIHandling::ConsiderTrivialABI )
1591015909 : ClassDecl->hasTrivialCopyConstructorForCall()));
1591115910
1591215911 // Note that we have declared this constructor.
@@ -16044,7 +16043,7 @@ CXXConstructorDecl *Sema::DeclareImplicitMoveConstructor(
1604416043 (ClassDecl->needsOverloadResolutionForMoveConstructor()
1604516044 ? SpecialMemberIsTrivial(MoveConstructor,
1604616045 CXXSpecialMemberKind::MoveConstructor,
16047- TAH_ConsiderTrivialABI )
16046+ TrivialABIHandling::ConsiderTrivialABI )
1604816047 : ClassDecl->hasTrivialMoveConstructorForCall()));
1604916048
1605016049 // Note that we have declared this constructor.
0 commit comments