@@ -7138,7 +7138,8 @@ void Sema::CheckCompletedCXXClass(Scope *S, CXXRecordDecl *Record) {
7138
7138
Record->finishedDefaultedOrDeletedMember(M);
7139
7139
M->setTrivialForCall(
7140
7140
HasTrivialABI ||
7141
- SpecialMemberIsTrivial(M, CSM, TAH_ConsiderTrivialABI));
7141
+ SpecialMemberIsTrivial(M, CSM,
7142
+ TrivialABIHandling::ConsiderTrivialABI));
7142
7143
Record->setTrivialForCallFlags(M);
7143
7144
}
7144
7145
}
@@ -9997,8 +9998,7 @@ void Sema::DiagnoseDeletedDefaultedFunction(FunctionDecl *FD) {
9997
9998
/// determine whether the special member is trivial.
9998
9999
static bool findTrivialSpecialMember(Sema &S, CXXRecordDecl *RD,
9999
10000
CXXSpecialMemberKind CSM, unsigned Quals,
10000
- bool ConstRHS,
10001
- Sema::TrivialABIHandling TAH,
10001
+ bool ConstRHS, TrivialABIHandling TAH,
10002
10002
CXXMethodDecl **Selected) {
10003
10003
if (Selected)
10004
10004
*Selected = nullptr;
@@ -10041,7 +10041,7 @@ static bool findTrivialSpecialMember(Sema &S, CXXRecordDecl *RD,
10041
10041
// A destructor is trivial if:
10042
10042
// - all the direct [subobjects] have trivial destructors
10043
10043
if (RD->hasTrivialDestructor() ||
10044
- (TAH == Sema::TAH_ConsiderTrivialABI &&
10044
+ (TAH == TrivialABIHandling::ConsiderTrivialABI &&
10045
10045
RD->hasTrivialDestructorForCall()))
10046
10046
return true;
10047
10047
@@ -10058,7 +10058,7 @@ static bool findTrivialSpecialMember(Sema &S, CXXRecordDecl *RD,
10058
10058
// A copy constructor is trivial if:
10059
10059
// - the constructor selected to copy each direct [subobject] is trivial
10060
10060
if (RD->hasTrivialCopyConstructor() ||
10061
- (TAH == Sema::TAH_ConsiderTrivialABI &&
10061
+ (TAH == TrivialABIHandling::ConsiderTrivialABI &&
10062
10062
RD->hasTrivialCopyConstructorForCall())) {
10063
10063
if (Quals == Qualifiers::Const)
10064
10064
// We must either select the trivial copy constructor or reach an
@@ -10113,7 +10113,7 @@ static bool findTrivialSpecialMember(Sema &S, CXXRecordDecl *RD,
10113
10113
if (Selected)
10114
10114
*Selected = SMOR.getMethod();
10115
10115
10116
- if (TAH == Sema::TAH_ConsiderTrivialABI &&
10116
+ if (TAH == TrivialABIHandling::ConsiderTrivialABI &&
10117
10117
(CSM == CXXSpecialMemberKind::CopyConstructor ||
10118
10118
CSM == CXXSpecialMemberKind::MoveConstructor))
10119
10119
return SMOR.getMethod()->isTrivialForCall();
@@ -10155,8 +10155,7 @@ static bool checkTrivialSubobjectCall(Sema &S, SourceLocation SubobjLoc,
10155
10155
QualType SubType, bool ConstRHS,
10156
10156
CXXSpecialMemberKind CSM,
10157
10157
TrivialSubobjectKind Kind,
10158
- Sema::TrivialABIHandling TAH,
10159
- bool Diagnose) {
10158
+ TrivialABIHandling TAH, bool Diagnose) {
10160
10159
CXXRecordDecl *SubRD = SubType->getAsCXXRecordDecl();
10161
10160
if (!SubRD)
10162
10161
return true;
@@ -10193,8 +10192,8 @@ static bool checkTrivialSubobjectCall(Sema &S, SourceLocation SubobjLoc,
10193
10192
<< Kind << SubType.getUnqualifiedType() << CSM;
10194
10193
10195
10194
// 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);
10198
10197
}
10199
10198
}
10200
10199
@@ -10205,8 +10204,7 @@ static bool checkTrivialSubobjectCall(Sema &S, SourceLocation SubobjLoc,
10205
10204
/// trivial.
10206
10205
static bool checkTrivialClassMembers(Sema &S, CXXRecordDecl *RD,
10207
10206
CXXSpecialMemberKind CSM, bool ConstArg,
10208
- Sema::TrivialABIHandling TAH,
10209
- bool Diagnose) {
10207
+ TrivialABIHandling TAH, bool Diagnose) {
10210
10208
for (const auto *FI : RD->fields()) {
10211
10209
if (FI->isInvalidDecl() || FI->isUnnamedBitField())
10212
10210
continue;
@@ -10260,8 +10258,9 @@ void Sema::DiagnoseNontrivial(const CXXRecordDecl *RD,
10260
10258
bool ConstArg = (CSM == CXXSpecialMemberKind::CopyConstructor ||
10261
10259
CSM == CXXSpecialMemberKind::CopyAssignment);
10262
10260
checkTrivialSubobjectCall(*this, RD->getLocation(), Ty, ConstArg, CSM,
10263
- TSK_CompleteObject, TAH_IgnoreTrivialABI,
10264
- /*Diagnose*/true);
10261
+ TSK_CompleteObject,
10262
+ TrivialABIHandling::IgnoreTrivialABI,
10263
+ /*Diagnose*/ true);
10265
10264
}
10266
10265
10267
10266
bool Sema::SpecialMemberIsTrivial(CXXMethodDecl *MD, CXXSpecialMemberKind CSM,
@@ -15906,7 +15905,7 @@ CXXConstructorDecl *Sema::DeclareImplicitCopyConstructor(
15906
15905
(ClassDecl->needsOverloadResolutionForCopyConstructor()
15907
15906
? SpecialMemberIsTrivial(CopyConstructor,
15908
15907
CXXSpecialMemberKind::CopyConstructor,
15909
- TAH_ConsiderTrivialABI )
15908
+ TrivialABIHandling::ConsiderTrivialABI )
15910
15909
: ClassDecl->hasTrivialCopyConstructorForCall()));
15911
15910
15912
15911
// Note that we have declared this constructor.
@@ -16044,7 +16043,7 @@ CXXConstructorDecl *Sema::DeclareImplicitMoveConstructor(
16044
16043
(ClassDecl->needsOverloadResolutionForMoveConstructor()
16045
16044
? SpecialMemberIsTrivial(MoveConstructor,
16046
16045
CXXSpecialMemberKind::MoveConstructor,
16047
- TAH_ConsiderTrivialABI )
16046
+ TrivialABIHandling::ConsiderTrivialABI )
16048
16047
: ClassDecl->hasTrivialMoveConstructorForCall()));
16049
16048
16050
16049
// Note that we have declared this constructor.
0 commit comments