Skip to content

Commit 4ba2778

Browse files
committed
[clang][NFC] Convert Sema::CorrectTypoKind to scoped enum
1 parent c0917ab commit 4ba2778

13 files changed

+51
-46
lines changed

clang/include/clang/Sema/Sema.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -799,6 +799,11 @@ enum class IfExistsResult {
799799
Error
800800
};
801801

802+
enum class CorrectTypoKind {
803+
NonError, // CorrectTypo used in a non error recovery situation.
804+
ErrorRecovery // CorrectTypo used in normal error recovery.
805+
};
806+
802807
/// Sema - This implements semantic analysis and AST building for C.
803808
/// \nosubgrouping
804809
class Sema final : public SemaBase {
@@ -9593,11 +9598,6 @@ class Sema final : public SemaBase {
95939598
bool IncludeDependentBases = false,
95949599
bool LoadExternal = true);
95959600

9596-
enum CorrectTypoKind {
9597-
CTK_NonError, // CorrectTypo used in a non error recovery situation.
9598-
CTK_ErrorRecovery // CorrectTypo used in normal error recovery.
9599-
};
9600-
96019601
/// Try to "correct" a typo in the source code by finding
96029602
/// visible declarations whose names are similar to the name that was
96039603
/// present in the source code.

clang/lib/Sema/SemaCXXScopeSpec.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -542,7 +542,7 @@ bool Sema::BuildCXXNestedNameSpecifier(Scope *S, NestedNameSpecInfo &IdInfo,
542542
NestedNameSpecifierValidatorCCC CCC(*this);
543543
if (TypoCorrection Corrected = CorrectTypo(
544544
Found.getLookupNameInfo(), Found.getLookupKind(), S, &SS, CCC,
545-
CTK_ErrorRecovery, LookupCtx, EnteringContext)) {
545+
CorrectTypoKind::ErrorRecovery, LookupCtx, EnteringContext)) {
546546
if (LookupCtx) {
547547
bool DroppedSpecifier =
548548
Corrected.WillReplaceSpecifier() &&

clang/lib/Sema/SemaDecl.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -422,8 +422,9 @@ ParsedType Sema::getTypeName(const IdentifierInfo &II, SourceLocation NameLoc,
422422
if (CorrectedII) {
423423
TypeNameValidatorCCC CCC(/*AllowInvalid=*/true, isClassName,
424424
AllowDeducedTemplate);
425-
TypoCorrection Correction = CorrectTypo(Result.getLookupNameInfo(), Kind,
426-
S, SS, CCC, CTK_ErrorRecovery);
425+
TypoCorrection Correction =
426+
CorrectTypo(Result.getLookupNameInfo(), Kind, S, SS, CCC,
427+
CorrectTypoKind::ErrorRecovery);
427428
IdentifierInfo *NewII = Correction.getCorrectionAsIdentifierInfo();
428429
TemplateTy Template;
429430
bool MemberOfUnknownSpecialization;
@@ -711,7 +712,7 @@ void Sema::DiagnoseUnknownTypeName(IdentifierInfo *&II,
711712
/*AllowNonTemplates=*/!IsTemplateName);
712713
if (TypoCorrection Corrected =
713714
CorrectTypo(DeclarationNameInfo(II, IILoc), LookupOrdinaryName, S, SS,
714-
CCC, CTK_ErrorRecovery)) {
715+
CCC, CorrectTypoKind::ErrorRecovery)) {
715716
// FIXME: Support error recovery for the template-name case.
716717
bool CanRecover = !IsTemplateName;
717718
if (Corrected.isKeyword()) {
@@ -979,7 +980,7 @@ Sema::NameClassification Sema::ClassifyName(Scope *S, CXXScopeSpec &SS,
979980
SecondTry = true;
980981
if (TypoCorrection Corrected =
981982
CorrectTypo(Result.getLookupNameInfo(), Result.getLookupKind(), S,
982-
&SS, *CCC, CTK_ErrorRecovery)) {
983+
&SS, *CCC, CorrectTypoKind::ErrorRecovery)) {
983984
unsigned UnqualifiedDiag = diag::err_undeclared_var_use_suggest;
984985
unsigned QualifiedDiag = diag::err_no_member_suggest;
985986

@@ -9174,7 +9175,8 @@ static NamedDecl *DiagnoseInvalidRedeclaration(
91749175
// If the qualified name lookup yielded nothing, try typo correction
91759176
} else if ((Correction = SemaRef.CorrectTypo(
91769177
Prev.getLookupNameInfo(), Prev.getLookupKind(), S,
9177-
&ExtraArgs.D.getCXXScopeSpec(), CCC, Sema::CTK_ErrorRecovery,
9178+
&ExtraArgs.D.getCXXScopeSpec(), CCC,
9179+
CorrectTypoKind::ErrorRecovery,
91789180
IsLocalFriend ? nullptr : NewDC))) {
91799181
// Set up everything for the call to ActOnFunctionDeclarator
91809182
ExtraArgs.D.SetIdentifier(Correction.getCorrectionAsIdentifierInfo(),
@@ -16759,7 +16761,7 @@ NamedDecl *Sema::ImplicitlyDefineFunction(SourceLocation Loc,
1675916761
(Diags.getDiagnosticLevel(diag_id, Loc) >= DiagnosticsEngine::Error)) {
1676016762
DeclFilterCCC<FunctionDecl> CCC{};
1676116763
Corrected = CorrectTypo(DeclarationNameInfo(&II, Loc), LookupOrdinaryName,
16762-
S, nullptr, CCC, CTK_NonError);
16764+
S, nullptr, CCC, CorrectTypoKind::NonError);
1676316765
}
1676416766

1676516767
Diag(Loc, diag_id) << &II;

clang/lib/Sema/SemaDeclCXX.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4521,8 +4521,9 @@ Sema::BuildMemInitializer(Decl *ConstructorD,
45214521
TypoCorrection Corr;
45224522
MemInitializerValidatorCCC CCC(ClassDecl);
45234523
if (R.empty() && BaseType.isNull() &&
4524-
(Corr = CorrectTypo(R.getLookupNameInfo(), R.getLookupKind(), S, &SS,
4525-
CCC, CTK_ErrorRecovery, ClassDecl))) {
4524+
(Corr =
4525+
CorrectTypo(R.getLookupNameInfo(), R.getLookupKind(), S, &SS,
4526+
CCC, CorrectTypoKind::ErrorRecovery, ClassDecl))) {
45264527
if (FieldDecl *Member = Corr.getCorrectionDeclAs<FieldDecl>()) {
45274528
// We have found a non-static data member with a similar
45284529
// name to what was typed; complain and initialize that
@@ -12399,7 +12400,7 @@ static bool TryNamespaceTypoCorrection(Sema &S, LookupResult &R, Scope *Sc,
1239912400
NamespaceValidatorCCC CCC{};
1240012401
if (TypoCorrection Corrected =
1240112402
S.CorrectTypo(R.getLookupNameInfo(), R.getLookupKind(), Sc, &SS, CCC,
12402-
Sema::CTK_ErrorRecovery)) {
12403+
CorrectTypoKind::ErrorRecovery)) {
1240312404
// Generally we find it is confusing more than helpful to diagnose the
1240412405
// invisible namespace.
1240512406
// See https://github.com/llvm/llvm-project/issues/73893.
@@ -13193,7 +13194,7 @@ NamedDecl *Sema::BuildUsingDeclaration(
1319313194
dyn_cast<CXXRecordDecl>(CurContext));
1319413195
if (TypoCorrection Corrected =
1319513196
CorrectTypo(R.getLookupNameInfo(), R.getLookupKind(), S, &SS, CCC,
13196-
CTK_ErrorRecovery)) {
13197+
CorrectTypoKind::ErrorRecovery)) {
1319713198
// We reject candidates where DroppedSpecifier == true, hence the
1319813199
// literal '0' below.
1319913200
diagnoseTypo(Corrected, PDiag(diag::err_no_member_suggest)

clang/lib/Sema/SemaDeclObjC.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -565,7 +565,7 @@ void SemaObjC::ActOnSuperClassOfClassInterface(
565565
ObjCInterfaceValidatorCCC CCC(IDecl);
566566
if (TypoCorrection Corrected = SemaRef.CorrectTypo(
567567
DeclarationNameInfo(SuperName, SuperLoc), Sema::LookupOrdinaryName,
568-
SemaRef.TUScope, nullptr, CCC, Sema::CTK_ErrorRecovery)) {
568+
SemaRef.TUScope, nullptr, CCC, CorrectTypoKind::ErrorRecovery)) {
569569
SemaRef.diagnoseTypo(Corrected, PDiag(diag::err_undef_superclass_suggest)
570570
<< SuperName << ClassName);
571571
PrevDecl = Corrected.getCorrectionDeclAs<ObjCInterfaceDecl>();
@@ -1320,7 +1320,7 @@ void SemaObjC::FindProtocolDeclaration(bool WarnOnDeclarations,
13201320
TypoCorrection Corrected = SemaRef.CorrectTypo(
13211321
DeclarationNameInfo(Pair.getIdentifierInfo(), Pair.getLoc()),
13221322
Sema::LookupObjCProtocolName, SemaRef.TUScope, nullptr, CCC,
1323-
Sema::CTK_ErrorRecovery);
1323+
CorrectTypoKind::ErrorRecovery);
13241324
if ((PDecl = Corrected.getCorrectionDeclAs<ObjCProtocolDecl>()))
13251325
SemaRef.diagnoseTypo(Corrected,
13261326
PDiag(diag::err_undeclared_protocol_suggest)
@@ -1701,7 +1701,7 @@ void SemaObjC::actOnObjCTypeArgsOrProtocolQualifiers(
17011701
ObjCTypeArgOrProtocolValidatorCCC CCC(Context, lookupKind);
17021702
TypoCorrection corrected = SemaRef.CorrectTypo(
17031703
DeclarationNameInfo(identifiers[i], identifierLocs[i]), lookupKind, S,
1704-
nullptr, CCC, Sema::CTK_ErrorRecovery);
1704+
nullptr, CCC, CorrectTypoKind::ErrorRecovery);
17051705
if (corrected) {
17061706
// Did we find a protocol?
17071707
if (auto proto = corrected.getCorrectionDeclAs<ObjCProtocolDecl>()) {
@@ -2005,7 +2005,7 @@ ObjCImplementationDecl *SemaObjC::ActOnStartClassImplementation(
20052005
ObjCInterfaceValidatorCCC CCC{};
20062006
TypoCorrection Corrected = SemaRef.CorrectTypo(
20072007
DeclarationNameInfo(ClassName, ClassLoc), Sema::LookupOrdinaryName,
2008-
SemaRef.TUScope, nullptr, CCC, Sema::CTK_NonError);
2008+
SemaRef.TUScope, nullptr, CCC, CorrectTypoKind::NonError);
20092009
if (Corrected.getCorrectionDeclAs<ObjCInterfaceDecl>()) {
20102010
// Suggest the (potentially) correct interface name. Don't provide a
20112011
// code-modification hint or use the typo name for recovery, because
@@ -5439,7 +5439,7 @@ ObjCInterfaceDecl *SemaObjC::getObjCInterfaceDecl(const IdentifierInfo *&Id,
54395439
DeclFilterCCC<ObjCInterfaceDecl> CCC{};
54405440
if (TypoCorrection C = SemaRef.CorrectTypo(
54415441
DeclarationNameInfo(Id, IdLoc), Sema::LookupOrdinaryName,
5442-
SemaRef.TUScope, nullptr, CCC, Sema::CTK_ErrorRecovery)) {
5442+
SemaRef.TUScope, nullptr, CCC, CorrectTypoKind::ErrorRecovery)) {
54435443
SemaRef.diagnoseTypo(C, PDiag(diag::err_undef_interface_suggest) << Id);
54445444
IDecl = C.getCorrectionDeclAs<ObjCInterfaceDecl>();
54455445
Id = IDecl->getIdentifier();

clang/lib/Sema/SemaExpr.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2546,12 +2546,12 @@ bool Sema::DiagnoseEmptyLookup(Scope *S, CXXScopeSpec &SS, LookupResult &R,
25462546
emitEmptyLookupTypoDiagnostic(TC, *this, SS, Name, NameRange,
25472547
diagnostic, diagnostic_suggest);
25482548
},
2549-
nullptr, CTK_ErrorRecovery, LookupCtx);
2549+
nullptr, CorrectTypoKind::ErrorRecovery, LookupCtx);
25502550
if (*Out)
25512551
return true;
2552-
} else if (S && (Corrected =
2553-
CorrectTypo(R.getLookupNameInfo(), R.getLookupKind(), S,
2554-
&SS, CCC, CTK_ErrorRecovery, LookupCtx))) {
2552+
} else if (S && (Corrected = CorrectTypo(
2553+
R.getLookupNameInfo(), R.getLookupKind(), S, &SS, CCC,
2554+
CorrectTypoKind::ErrorRecovery, LookupCtx))) {
25552555
std::string CorrectedStr(Corrected.getAsString(getLangOpts()));
25562556
bool DroppedSpecifier =
25572557
Corrected.WillReplaceSpecifier() && Name.getAsString() == CorrectedStr;
@@ -5829,7 +5829,7 @@ static TypoCorrection TryTypoCorrectionForCall(Sema &S, Expr *Fn,
58295829
if (TypoCorrection Corrected = S.CorrectTypo(
58305830
DeclarationNameInfo(FuncName, NameLoc), Sema::LookupOrdinaryName,
58315831
S.getScopeForContext(S.CurContext), nullptr, CCC,
5832-
Sema::CTK_ErrorRecovery)) {
5832+
CorrectTypoKind::ErrorRecovery)) {
58335833
if (NamedDecl *ND = Corrected.getFoundDecl()) {
58345834
if (Corrected.isOverloaded()) {
58355835
OverloadCandidateSet OCS(NameLoc, OverloadCandidateSet::CSK_Normal);

clang/lib/Sema/SemaExprMember.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -772,7 +772,7 @@ static bool LookupMemberExprInRecord(Sema &SemaRef, LookupResult &R,
772772
BaseExpr, BaseExpr->getType(), OpLoc, IsArrow, SS, SourceLocation(),
773773
nullptr, R, nullptr, nullptr);
774774
},
775-
Sema::CTK_ErrorRecovery, DC);
775+
CorrectTypoKind::ErrorRecovery, DC);
776776

777777
return false;
778778
}
@@ -1457,7 +1457,7 @@ static ExprResult LookupMemberExpr(Sema &S, LookupResult &R,
14571457
Validator.IsObjCIvarLookup = IsArrow;
14581458
if (TypoCorrection Corrected = S.CorrectTypo(
14591459
R.getLookupNameInfo(), Sema::LookupMemberName, nullptr, nullptr,
1460-
Validator, Sema::CTK_ErrorRecovery, IDecl)) {
1460+
Validator, CorrectTypoKind::ErrorRecovery, IDecl)) {
14611461
IV = Corrected.getCorrectionDeclAs<ObjCIvarDecl>();
14621462
S.diagnoseTypo(
14631463
Corrected,

clang/lib/Sema/SemaExprObjC.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2103,7 +2103,8 @@ ExprResult SemaObjC::HandleExprPropertyRefExpr(
21032103
DeclFilterCCC<ObjCPropertyDecl> CCC{};
21042104
if (TypoCorrection Corrected = SemaRef.CorrectTypo(
21052105
DeclarationNameInfo(MemberName, MemberLoc), Sema::LookupOrdinaryName,
2106-
nullptr, nullptr, CCC, Sema::CTK_ErrorRecovery, IFace, false, OPT)) {
2106+
nullptr, nullptr, CCC, CorrectTypoKind::ErrorRecovery, IFace, false,
2107+
OPT)) {
21072108
DeclarationName TypoResult = Corrected.getCorrection();
21082109
if (TypoResult.isIdentifier() &&
21092110
TypoResult.getAsIdentifierInfo() == Member) {
@@ -2353,7 +2354,7 @@ SemaObjC::getObjCMessageKind(Scope *S, IdentifierInfo *Name,
23532354
ObjCInterfaceOrSuperCCC CCC(SemaRef.getCurMethodDecl());
23542355
if (TypoCorrection Corrected = SemaRef.CorrectTypo(
23552356
Result.getLookupNameInfo(), Result.getLookupKind(), S, nullptr, CCC,
2356-
Sema::CTK_ErrorRecovery, nullptr, false, nullptr, false)) {
2357+
CorrectTypoKind::ErrorRecovery, nullptr, false, nullptr, false)) {
23572358
if (Corrected.isKeyword()) {
23582359
// If we've found the keyword "super" (the only keyword that would be
23592360
// returned by CorrectTypo), this is a send to super.

clang/lib/Sema/SemaInit.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2913,7 +2913,7 @@ InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity,
29132913
if (TypoCorrection Corrected = SemaRef.CorrectTypo(
29142914
DeclarationNameInfo(FieldName, D->getFieldLoc()),
29152915
Sema::LookupMemberName, /*Scope=*/nullptr, /*SS=*/nullptr, CCC,
2916-
Sema::CTK_ErrorRecovery, RD)) {
2916+
CorrectTypoKind::ErrorRecovery, RD)) {
29172917
SemaRef.diagnoseTypo(
29182918
Corrected,
29192919
SemaRef.PDiag(diag::err_field_designator_unknown_suggest)

clang/lib/Sema/SemaLookup.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5341,9 +5341,9 @@ TypoCorrection Sema::CorrectTypo(const DeclarationNameInfo &TypoName,
53415341
bool ObjCMessageReceiver = CCC.WantObjCSuper && !CCC.WantRemainingKeywords;
53425342

53435343
IdentifierInfo *Typo = TypoName.getName().getAsIdentifierInfo();
5344-
auto Consumer = makeTypoCorrectionConsumer(TypoName, LookupKind, S, SS, CCC,
5345-
MemberContext, EnteringContext,
5346-
OPT, Mode == CTK_ErrorRecovery);
5344+
auto Consumer = makeTypoCorrectionConsumer(
5345+
TypoName, LookupKind, S, SS, CCC, MemberContext, EnteringContext, OPT,
5346+
Mode == CorrectTypoKind::ErrorRecovery);
53475347

53485348
if (!Consumer)
53495349
return TypoCorrection();
@@ -5419,9 +5419,9 @@ TypoExpr *Sema::CorrectTypoDelayed(
54195419
TypoDiagnosticGenerator TDG, TypoRecoveryCallback TRC, CorrectTypoKind Mode,
54205420
DeclContext *MemberContext, bool EnteringContext,
54215421
const ObjCObjectPointerType *OPT) {
5422-
auto Consumer = makeTypoCorrectionConsumer(TypoName, LookupKind, S, SS, CCC,
5423-
MemberContext, EnteringContext,
5424-
OPT, Mode == CTK_ErrorRecovery);
5422+
auto Consumer = makeTypoCorrectionConsumer(
5423+
TypoName, LookupKind, S, SS, CCC, MemberContext, EnteringContext, OPT,
5424+
Mode == CorrectTypoKind::ErrorRecovery);
54255425

54265426
// Give the external sema source a chance to correct the typo.
54275427
TypoCorrection ExternalTypo;

clang/lib/Sema/SemaOpenMP.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3074,7 +3074,7 @@ ExprResult SemaOpenMP::ActOnOpenMPIdExpression(Scope *CurScope,
30743074
VarDeclFilterCCC CCC(SemaRef);
30753075
if (TypoCorrection Corrected =
30763076
SemaRef.CorrectTypo(Id, Sema::LookupOrdinaryName, CurScope, nullptr,
3077-
CCC, Sema::CTK_ErrorRecovery)) {
3077+
CCC, CorrectTypoKind::ErrorRecovery)) {
30783078
SemaRef.diagnoseTypo(
30793079
Corrected,
30803080
SemaRef.PDiag(Lookup.empty() ? diag::err_undeclared_var_use_suggest
@@ -22893,7 +22893,7 @@ NamedDecl *SemaOpenMP::lookupOpenMPDeclareTargetName(
2289322893
VarOrFuncDeclFilterCCC CCC(SemaRef);
2289422894
if (TypoCorrection Corrected =
2289522895
SemaRef.CorrectTypo(Id, Sema::LookupOrdinaryName, CurScope, nullptr,
22896-
CCC, Sema::CTK_ErrorRecovery)) {
22896+
CCC, CorrectTypoKind::ErrorRecovery)) {
2289722897
SemaRef.diagnoseTypo(Corrected,
2289822898
SemaRef.PDiag(diag::err_undeclared_var_use_suggest)
2289922899
<< Id.getName());

clang/lib/Sema/SemaTemplate.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -514,9 +514,9 @@ bool Sema::LookupTemplateName(LookupResult &Found, Scope *S, CXXScopeSpec &SS,
514514
FilterCCC.WantExpressionKeywords = false;
515515
FilterCCC.WantRemainingKeywords = false;
516516
FilterCCC.WantCXXNamedCasts = true;
517-
if (TypoCorrection Corrected =
518-
CorrectTypo(Found.getLookupNameInfo(), Found.getLookupKind(), S,
519-
&SS, FilterCCC, CTK_ErrorRecovery, LookupCtx)) {
517+
if (TypoCorrection Corrected = CorrectTypo(
518+
Found.getLookupNameInfo(), Found.getLookupKind(), S, &SS, FilterCCC,
519+
CorrectTypoKind::ErrorRecovery, LookupCtx)) {
520520
if (auto *ND = Corrected.getFoundDecl())
521521
Found.addDecl(ND);
522522
FilterAcceptableTemplateNames(Found);
@@ -686,8 +686,9 @@ void Sema::diagnoseExprIntendedAsTemplateName(Scope *S, ExprResult TemplateName,
686686

687687
DeclarationName Name = NameInfo.getName();
688688
TemplateCandidateFilter CCC(*this);
689-
if (TypoCorrection Corrected = CorrectTypo(NameInfo, LookupKind, S, &SS, CCC,
690-
CTK_ErrorRecovery, LookupCtx)) {
689+
if (TypoCorrection Corrected =
690+
CorrectTypo(NameInfo, LookupKind, S, &SS, CCC,
691+
CorrectTypoKind::ErrorRecovery, LookupCtx)) {
691692
auto *ND = Corrected.getFoundDecl();
692693
if (ND)
693694
ND = getAsTemplateNameDecl(ND);
@@ -3735,7 +3736,7 @@ bool Sema::resolveAssumedTemplateNameAsType(Scope *S, TemplateName &Name,
37353736

37363737
TypoCorrection Corrected =
37373738
CorrectTypo(R.getLookupNameInfo(), R.getLookupKind(), S, nullptr,
3738-
FilterCCC, CTK_ErrorRecovery);
3739+
FilterCCC, CorrectTypoKind::ErrorRecovery);
37393740
if (Corrected && Corrected.getFoundDecl()) {
37403741
diagnoseTypo(Corrected, PDiag(diag::err_no_template_suggest)
37413742
<< ATN->getDeclName());

clang/lib/Sema/SemaTemplateVariadic.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1158,7 +1158,7 @@ ExprResult Sema::ActOnSizeofParameterPackExpr(Scope *S,
11581158
ParameterPackValidatorCCC CCC{};
11591159
if (TypoCorrection Corrected =
11601160
CorrectTypo(R.getLookupNameInfo(), R.getLookupKind(), S, nullptr,
1161-
CCC, CTK_ErrorRecovery)) {
1161+
CCC, CorrectTypoKind::ErrorRecovery)) {
11621162
diagnoseTypo(Corrected,
11631163
PDiag(diag::err_sizeof_pack_no_pack_name_suggest) << &Name,
11641164
PDiag(diag::note_parameter_pack_here));

0 commit comments

Comments
 (0)