Skip to content

Commit 458328a

Browse files
committed
[clang][NFC] Refactor Sema::RedeclarationKind
This patch converts the enum into scoped enum, and moves it into its own header for the time being. It's definition is needed in `Sema.h`, and is going to be needed in upcoming `SemaObjC.h`. `Lookup.h` can't hold it, because it includes `Sema.h`.
1 parent 812963f commit 458328a

File tree

13 files changed

+118
-88
lines changed

13 files changed

+118
-88
lines changed

clang/include/clang/Sema/Lookup.h

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -153,28 +153,30 @@ class LookupResult {
153153

154154
using iterator = UnresolvedSetImpl::iterator;
155155

156-
LookupResult(Sema &SemaRef, const DeclarationNameInfo &NameInfo,
157-
Sema::LookupNameKind LookupKind,
158-
Sema::RedeclarationKind Redecl = Sema::NotForRedeclaration)
156+
LookupResult(
157+
Sema &SemaRef, const DeclarationNameInfo &NameInfo,
158+
Sema::LookupNameKind LookupKind,
159+
RedeclarationKind Redecl = RedeclarationKind::NotForRedeclaration)
159160
: SemaPtr(&SemaRef), NameInfo(NameInfo), LookupKind(LookupKind),
160-
Redecl(Redecl != Sema::NotForRedeclaration),
161-
ExternalRedecl(Redecl == Sema::ForExternalRedeclaration),
162-
DiagnoseAccess(Redecl == Sema::NotForRedeclaration),
163-
DiagnoseAmbiguous(Redecl == Sema::NotForRedeclaration) {
161+
Redecl(Redecl != RedeclarationKind::NotForRedeclaration),
162+
ExternalRedecl(Redecl == RedeclarationKind::ForExternalRedeclaration),
163+
DiagnoseAccess(Redecl == RedeclarationKind::NotForRedeclaration),
164+
DiagnoseAmbiguous(Redecl == RedeclarationKind::NotForRedeclaration) {
164165
configure();
165166
}
166167

167168
// TODO: consider whether this constructor should be restricted to take
168169
// as input a const IdentifierInfo* (instead of Name),
169170
// forcing other cases towards the constructor taking a DNInfo.
170-
LookupResult(Sema &SemaRef, DeclarationName Name, SourceLocation NameLoc,
171-
Sema::LookupNameKind LookupKind,
172-
Sema::RedeclarationKind Redecl = Sema::NotForRedeclaration)
171+
LookupResult(
172+
Sema &SemaRef, DeclarationName Name, SourceLocation NameLoc,
173+
Sema::LookupNameKind LookupKind,
174+
RedeclarationKind Redecl = RedeclarationKind::NotForRedeclaration)
173175
: SemaPtr(&SemaRef), NameInfo(Name, NameLoc), LookupKind(LookupKind),
174-
Redecl(Redecl != Sema::NotForRedeclaration),
175-
ExternalRedecl(Redecl == Sema::ForExternalRedeclaration),
176-
DiagnoseAccess(Redecl == Sema::NotForRedeclaration),
177-
DiagnoseAmbiguous(Redecl == Sema::NotForRedeclaration) {
176+
Redecl(Redecl != RedeclarationKind::NotForRedeclaration),
177+
ExternalRedecl(Redecl == RedeclarationKind::ForExternalRedeclaration),
178+
DiagnoseAccess(Redecl == RedeclarationKind::NotForRedeclaration),
179+
DiagnoseAmbiguous(Redecl == RedeclarationKind::NotForRedeclaration) {
178180
configure();
179181
}
180182

@@ -285,9 +287,10 @@ class LookupResult {
285287
return ExternalRedecl;
286288
}
287289

288-
Sema::RedeclarationKind redeclarationKind() const {
289-
return ExternalRedecl ? Sema::ForExternalRedeclaration :
290-
Redecl ? Sema::ForVisibleRedeclaration : Sema::NotForRedeclaration;
290+
RedeclarationKind redeclarationKind() const {
291+
return ExternalRedecl ? RedeclarationKind::ForExternalRedeclaration
292+
: Redecl ? RedeclarationKind::ForVisibleRedeclaration
293+
: RedeclarationKind::NotForRedeclaration;
291294
}
292295

293296
/// Specify whether hidden declarations are visible, e.g.,
@@ -615,9 +618,9 @@ class LookupResult {
615618
}
616619

617620
/// Change this lookup's redeclaration kind.
618-
void setRedeclarationKind(Sema::RedeclarationKind RK) {
619-
Redecl = (RK != Sema::NotForRedeclaration);
620-
ExternalRedecl = (RK == Sema::ForExternalRedeclaration);
621+
void setRedeclarationKind(RedeclarationKind RK) {
622+
Redecl = (RK != RedeclarationKind::NotForRedeclaration);
623+
ExternalRedecl = (RK == RedeclarationKind::ForExternalRedeclaration);
621624
configure();
622625
}
623626

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
//===- Redeclaration.h - Redeclarations--------------------------*- C++ -*-===//
2+
//
3+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4+
// See https://llvm.org/LICENSE.txt for license information.
5+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6+
//
7+
//===----------------------------------------------------------------------===//
8+
//
9+
// This file defines RedeclarationKind enum.
10+
//
11+
//===----------------------------------------------------------------------===//
12+
13+
#ifndef LLVM_CLANG_SEMA_REDECLARATION_H
14+
#define LLVM_CLANG_SEMA_REDECLARATION_H
15+
16+
/// Specifies whether (or how) name lookup is being performed for a
17+
/// redeclaration (vs. a reference).
18+
enum class RedeclarationKind {
19+
/// The lookup is a reference to this name that is not for the
20+
/// purpose of redeclaring the name.
21+
NotForRedeclaration = 0,
22+
/// The lookup results will be used for redeclaration of a name,
23+
/// if an entity by that name already exists and is visible.
24+
ForVisibleRedeclaration,
25+
/// The lookup results will be used for redeclaration of a name
26+
/// with external linkage; non-visible lookup results with external linkage
27+
/// may also be found.
28+
ForExternalRedeclaration
29+
};
30+
31+
#endif // LLVM_CLANG_SEMA_REDECLARATION_H

clang/include/clang/Sema/Sema.h

Lines changed: 9 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
#include "clang/Sema/IdentifierResolver.h"
5353
#include "clang/Sema/ObjCMethodList.h"
5454
#include "clang/Sema/Ownership.h"
55+
#include "clang/Sema/Redeclaration.h"
5556
#include "clang/Sema/Scope.h"
5657
#include "clang/Sema/SemaBase.h"
5758
#include "clang/Sema/SemaConcept.h"
@@ -7443,40 +7444,17 @@ class Sema final : public SemaBase {
74437444
typedef std::function<ExprResult(Sema &, TypoExpr *, TypoCorrection)>
74447445
TypoRecoveryCallback;
74457446

7446-
/// Specifies whether (or how) name lookup is being performed for a
7447-
/// redeclaration (vs. a reference).
7448-
enum RedeclarationKind {
7449-
/// The lookup is a reference to this name that is not for the
7450-
/// purpose of redeclaring the name.
7451-
NotForRedeclaration = 0,
7452-
/// The lookup results will be used for redeclaration of a name,
7453-
/// if an entity by that name already exists and is visible.
7454-
ForVisibleRedeclaration,
7455-
/// The lookup results will be used for redeclaration of a name
7456-
/// with external linkage; non-visible lookup results with external linkage
7457-
/// may also be found.
7458-
ForExternalRedeclaration
7459-
};
7460-
7461-
RedeclarationKind forRedeclarationInCurContext() const {
7462-
// A declaration with an owning module for linkage can never link against
7463-
// anything that is not visible. We don't need to check linkage here; if
7464-
// the context has internal linkage, redeclaration lookup won't find things
7465-
// from other TUs, and we can't safely compute linkage yet in general.
7466-
if (cast<Decl>(CurContext)
7467-
->getOwningModuleForLinkage(/*IgnoreLinkage*/ true))
7468-
return ForVisibleRedeclaration;
7469-
return ForExternalRedeclaration;
7470-
}
7447+
RedeclarationKind forRedeclarationInCurContext() const;
74717448

74727449
/// Look up a name, looking for a single declaration. Return
74737450
/// null if the results were absent, ambiguous, or overloaded.
74747451
///
74757452
/// It is preferable to use the elaborated form and explicitly handle
74767453
/// ambiguity and overloaded.
7477-
NamedDecl *LookupSingleName(Scope *S, DeclarationName Name,
7478-
SourceLocation Loc, LookupNameKind NameKind,
7479-
RedeclarationKind Redecl = NotForRedeclaration);
7454+
NamedDecl *LookupSingleName(
7455+
Scope *S, DeclarationName Name, SourceLocation Loc,
7456+
LookupNameKind NameKind,
7457+
RedeclarationKind Redecl = RedeclarationKind::NotForRedeclaration);
74807458
bool LookupBuiltin(LookupResult &R);
74817459
void LookupNecessaryTypesForBuiltin(Scope *S, unsigned ID);
74827460
bool LookupName(LookupResult &R, Scope *S, bool AllowBuiltinCreation = false,
@@ -7488,9 +7466,9 @@ class Sema final : public SemaBase {
74887466
bool LookupParsedName(LookupResult &R, Scope *S, CXXScopeSpec *SS,
74897467
bool AllowBuiltinCreation = false,
74907468
bool EnteringContext = false);
7491-
ObjCProtocolDecl *
7492-
LookupProtocol(IdentifierInfo *II, SourceLocation IdLoc,
7493-
RedeclarationKind Redecl = NotForRedeclaration);
7469+
ObjCProtocolDecl *LookupProtocol(
7470+
IdentifierInfo *II, SourceLocation IdLoc,
7471+
RedeclarationKind Redecl = RedeclarationKind::NotForRedeclaration);
74947472
bool LookupInSuper(LookupResult &R, CXXRecordDecl *Class);
74957473

74967474
void LookupOverloadedOperatorName(OverloadedOperatorKind Op, Scope *S,

clang/lib/Interpreter/Interpreter.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,8 @@ std::unique_ptr<RuntimeInterfaceBuilder> Interpreter::FindRuntimeInterface() {
550550

551551
auto LookupInterface = [&](Expr *&Interface, llvm::StringRef Name) {
552552
LookupResult R(S, &Ctx.Idents.get(Name), SourceLocation(),
553-
Sema::LookupOrdinaryName, Sema::ForVisibleRedeclaration);
553+
Sema::LookupOrdinaryName,
554+
RedeclarationKind::ForVisibleRedeclaration);
554555
S.LookupQualifiedName(R, Ctx.getTranslationUnitDecl());
555556
if (R.empty())
556557
return false;

clang/lib/Interpreter/InterpreterUtils.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ NamedDecl *LookupNamed(Sema &S, llvm::StringRef Name,
7272
const DeclContext *Within) {
7373
DeclarationName DName = &S.Context.Idents.get(Name);
7474
LookupResult R(S, DName, SourceLocation(), Sema::LookupOrdinaryName,
75-
Sema::ForVisibleRedeclaration);
75+
RedeclarationKind::ForVisibleRedeclaration);
7676

7777
R.suppressDiagnostics();
7878

clang/lib/Sema/SemaDecl.cpp

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5374,7 +5374,7 @@ static bool CheckAnonMemberRedeclaration(Sema &SemaRef, Scope *S,
53745374
LookupResult R(SemaRef, Name, NameLoc,
53755375
Owner->isRecord() ? Sema::LookupMemberName
53765376
: Sema::LookupOrdinaryName,
5377-
Sema::ForVisibleRedeclaration);
5377+
RedeclarationKind::ForVisibleRedeclaration);
53785378
if (!SemaRef.LookupName(R, S)) return false;
53795379

53805380
// Pick a representative declaration.
@@ -6470,7 +6470,8 @@ NamedDecl *Sema::HandleDeclarator(Scope *S, Declarator &D,
64706470

64716471
if (IsLinkageLookup) {
64726472
Previous.clear(LookupRedeclarationWithLinkage);
6473-
Previous.setRedeclarationKind(ForExternalRedeclaration);
6473+
Previous.setRedeclarationKind(
6474+
RedeclarationKind::ForExternalRedeclaration);
64746475
}
64756476

64766477
LookupName(Previous, S, CreateBuiltins);
@@ -8521,7 +8522,8 @@ void Sema::CheckShadow(Scope *S, VarDecl *D) {
85218522
return;
85228523

85238524
LookupResult R(*this, D->getDeclName(), D->getLocation(),
8524-
Sema::LookupOrdinaryName, Sema::ForVisibleRedeclaration);
8525+
Sema::LookupOrdinaryName,
8526+
RedeclarationKind::ForVisibleRedeclaration);
85258527
LookupName(R, S);
85268528
if (NamedDecl *ShadowedDecl = getShadowedDeclaration(D, R))
85278529
CheckShadow(D, ShadowedDecl, R);
@@ -9161,7 +9163,7 @@ static NamedDecl *DiagnoseInvalidRedeclaration(
91619163
LookupResult Prev(SemaRef, Name, NewFD->getLocation(),
91629164
IsLocalFriend ? Sema::LookupLocalFriendName
91639165
: Sema::LookupOrdinaryName,
9164-
Sema::ForVisibleRedeclaration);
9166+
RedeclarationKind::ForVisibleRedeclaration);
91659167

91669168
NewFD->setInvalidDecl();
91679169
if (IsLocalFriend)
@@ -15196,7 +15198,7 @@ Decl *Sema::ActOnParamDeclarator(Scope *S, Declarator &D,
1519615198
const IdentifierInfo *II = D.getIdentifier();
1519715199
if (II) {
1519815200
LookupResult R(*this, II, D.getIdentifierLoc(), LookupOrdinaryName,
15199-
ForVisibleRedeclaration);
15201+
RedeclarationKind::ForVisibleRedeclaration);
1520015202
LookupName(R, S);
1520115203
if (!R.empty()) {
1520215204
NamedDecl *PrevDecl = *R.begin();
@@ -17428,7 +17430,7 @@ Sema::ActOnTag(Scope *S, unsigned TagSpec, TagUseKind TUK, SourceLocation KWLoc,
1742817430

1742917431
RedeclarationKind Redecl = forRedeclarationInCurContext();
1743017432
if (TUK == TUK_Friend || TUK == TUK_Reference)
17431-
Redecl = NotForRedeclaration;
17433+
Redecl = RedeclarationKind::NotForRedeclaration;
1743217434

1743317435
/// Create a new tag decl in C/ObjC. Since the ODR-like semantics for ObjC/C
1743417436
/// implemented asks for structural equivalence checking, the returned decl
@@ -18589,7 +18591,7 @@ FieldDecl *Sema::HandleField(Scope *S, RecordDecl *Record,
1858918591
// Check to see if this name was declared as a member previously
1859018592
NamedDecl *PrevDecl = nullptr;
1859118593
LookupResult Previous(*this, II, Loc, LookupMemberName,
18592-
ForVisibleRedeclaration);
18594+
RedeclarationKind::ForVisibleRedeclaration);
1859318595
LookupName(Previous, S);
1859418596
switch (Previous.getResultKind()) {
1859518597
case LookupResult::Found:
@@ -18993,8 +18995,9 @@ Decl *Sema::ActOnIvar(Scope *S, SourceLocation DeclStart, Declarator &D,
1899318995
NewID->setInvalidDecl();
1899418996

1899518997
if (II) {
18996-
NamedDecl *PrevDecl = LookupSingleName(S, II, Loc, LookupMemberName,
18997-
ForVisibleRedeclaration);
18998+
NamedDecl *PrevDecl =
18999+
LookupSingleName(S, II, Loc, LookupMemberName,
19000+
RedeclarationKind::ForVisibleRedeclaration);
1899819001
if (PrevDecl && isDeclInScope(PrevDecl, EnclosingContext, S)
1899919002
&& !isa<TagDecl>(PrevDecl)) {
1900019003
Diag(Loc, diag::err_duplicate_member) << II;
@@ -20039,7 +20042,8 @@ Decl *Sema::ActOnEnumConstant(Scope *S, Decl *theEnumDecl, Decl *lastEnumConst,
2003920042

2004020043
// Verify that there isn't already something declared with this name in this
2004120044
// scope.
20042-
LookupResult R(*this, Id, IdLoc, LookupOrdinaryName, ForVisibleRedeclaration);
20045+
LookupResult R(*this, Id, IdLoc, LookupOrdinaryName,
20046+
RedeclarationKind::ForVisibleRedeclaration);
2004320047
LookupName(R, S);
2004420048
NamedDecl *PrevDecl = R.getAsSingle<NamedDecl>();
2004520049

clang/lib/Sema/SemaDeclCXX.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -896,7 +896,7 @@ Sema::ActOnDecompositionDeclarator(Scope *S, Declarator &D,
896896
assert(VarName && "Cannot have an unnamed binding declaration");
897897

898898
LookupResult Previous(*this, NameInfo, LookupOrdinaryName,
899-
ForVisibleRedeclaration);
899+
RedeclarationKind::ForVisibleRedeclaration);
900900
LookupName(Previous, S,
901901
/*CreateBuiltins*/DC->getRedeclContext()->isTranslationUnit());
902902

@@ -951,7 +951,7 @@ Sema::ActOnDecompositionDeclarator(Scope *S, Declarator &D,
951951
DeclarationNameInfo NameInfo((IdentifierInfo *)nullptr,
952952
Decomp.getLSquareLoc());
953953
LookupResult Previous(*this, NameInfo, LookupOrdinaryName,
954-
ForVisibleRedeclaration);
954+
RedeclarationKind::ForVisibleRedeclaration);
955955

956956
// Build the variable that holds the non-decomposed object.
957957
bool AddToScope = true;
@@ -11715,7 +11715,7 @@ Decl *Sema::ActOnStartNamespaceDef(Scope *NamespcScope,
1171511715
// look through using directives, just look for any ordinary names
1171611716
// as if by qualified name lookup.
1171711717
LookupResult R(*this, II, IdentLoc, LookupOrdinaryName,
11718-
ForExternalRedeclaration);
11718+
RedeclarationKind::ForExternalRedeclaration);
1171911719
LookupQualifiedName(R, CurContext->getRedeclContext());
1172011720
NamedDecl *PrevDecl =
1172111721
R.isSingleResult() ? R.getRepresentativeDecl() : nullptr;
@@ -12916,7 +12916,7 @@ NamedDecl *Sema::BuildUsingDeclaration(
1291612916

1291712917
// Do the redeclaration lookup in the current scope.
1291812918
LookupResult Previous(*this, UsingName, LookupUsingDeclName,
12919-
ForVisibleRedeclaration);
12919+
RedeclarationKind::ForVisibleRedeclaration);
1292012920
Previous.setHideTags(false);
1292112921
if (S) {
1292212922
LookupName(Previous, S);
@@ -13159,7 +13159,7 @@ NamedDecl *Sema::BuildUsingEnumDeclaration(Scope *S, AccessSpecifier AS,
1315913159
/// In class scope, check if this is a duplicate, for better a diagnostic.
1316013160
DeclarationNameInfo UsingEnumName(ED->getDeclName(), NameLoc);
1316113161
LookupResult Previous(*this, UsingEnumName, LookupUsingDeclName,
13162-
ForVisibleRedeclaration);
13162+
RedeclarationKind::ForVisibleRedeclaration);
1316313163

1316413164
LookupName(Previous, S);
1316513165

@@ -13192,7 +13192,7 @@ NamedDecl *Sema::BuildUsingEnumDeclaration(Scope *S, AccessSpecifier AS,
1319213192
UsingShadowDecl *PrevDecl = nullptr;
1319313193
DeclarationNameInfo DNI(EC->getDeclName(), EC->getLocation());
1319413194
LookupResult Previous(*this, DNI, LookupOrdinaryName,
13195-
ForVisibleRedeclaration);
13195+
RedeclarationKind::ForVisibleRedeclaration);
1319613196
LookupName(Previous, S);
1319713197
FilterUsingLookup(S, Previous);
1319813198

@@ -13587,7 +13587,7 @@ Decl *Sema::ActOnAliasDeclaration(Scope *S, AccessSpecifier AS,
1358713587
LookupResult Previous(*this, NameInfo, LookupOrdinaryName,
1358813588
TemplateParamLists.size()
1358913589
? forRedeclarationInCurContext()
13590-
: ForVisibleRedeclaration);
13590+
: RedeclarationKind::ForVisibleRedeclaration);
1359113591
LookupName(Previous, S);
1359213592

1359313593
// Warn about shadowing the name of a template parameter.
@@ -13737,7 +13737,7 @@ Decl *Sema::ActOnNamespaceAliasDef(Scope *S, SourceLocation NamespaceLoc,
1373713737

1373813738
// Check if we have a previous declaration with the same name.
1373913739
LookupResult PrevR(*this, Alias, AliasLoc, LookupOrdinaryName,
13740-
ForVisibleRedeclaration);
13740+
RedeclarationKind::ForVisibleRedeclaration);
1374113741
LookupName(PrevR, S);
1374213742

1374313743
// Check we're not shadowing a template parameter.
@@ -13983,7 +13983,7 @@ void Sema::CheckImplicitSpecialMemberDeclaration(Scope *S, FunctionDecl *FD) {
1398313983
// implicit special members with this name.
1398413984
DeclarationName Name = FD->getDeclName();
1398513985
LookupResult R(*this, Name, SourceLocation(), LookupOrdinaryName,
13986-
ForExternalRedeclaration);
13986+
RedeclarationKind::ForExternalRedeclaration);
1398713987
for (auto *D : FD->getParent()->lookup(Name))
1398813988
if (auto *Acceptable = R.getAcceptableDecl(D))
1398913989
R.addDecl(Acceptable);
@@ -17113,9 +17113,9 @@ Decl *Sema::ActOnExceptionDeclarator(Scope *S, Declarator &D) {
1711317113
}
1711417114

1711517115
const IdentifierInfo *II = D.getIdentifier();
17116-
if (NamedDecl *PrevDecl = LookupSingleName(S, II, D.getIdentifierLoc(),
17117-
LookupOrdinaryName,
17118-
ForVisibleRedeclaration)) {
17116+
if (NamedDecl *PrevDecl =
17117+
LookupSingleName(S, II, D.getIdentifierLoc(), LookupOrdinaryName,
17118+
RedeclarationKind::ForVisibleRedeclaration)) {
1711917119
// The scope should be freshly made just for us. There is just no way
1712017120
// it contains any previous declaration, except for function parameters in
1712117121
// a function-try-block's catch statement.
@@ -17906,7 +17906,7 @@ NamedDecl *Sema::ActOnFriendFunctionDecl(Scope *S, Declarator &D,
1790617906
DeclContext *DC;
1790717907
Scope *DCScope = S;
1790817908
LookupResult Previous(*this, NameInfo, LookupOrdinaryName,
17909-
ForExternalRedeclaration);
17909+
RedeclarationKind::ForExternalRedeclaration);
1791017910

1791117911
bool isTemplateId = D.getName().getKind() == UnqualifiedIdKind::IK_TemplateId;
1791217912

@@ -19242,7 +19242,7 @@ MSPropertyDecl *Sema::HandleMSProperty(Scope *S, RecordDecl *Record,
1924219242
// Check to see if this name was declared as a member previously
1924319243
NamedDecl *PrevDecl = nullptr;
1924419244
LookupResult Previous(*this, II, Loc, LookupMemberName,
19245-
ForVisibleRedeclaration);
19245+
RedeclarationKind::ForVisibleRedeclaration);
1924619246
LookupName(Previous, S);
1924719247
switch (Previous.getResultKind()) {
1924819248
case LookupResult::Found:

clang/lib/Sema/SemaExprCXX.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9153,7 +9153,7 @@ Sema::CheckMicrosoftIfExistsSymbol(Scope *S,
91539153

91549154
// Do the redeclaration lookup in the current scope.
91559155
LookupResult R(*this, TargetNameInfo, Sema::LookupAnyName,
9156-
Sema::NotForRedeclaration);
9156+
RedeclarationKind::NotForRedeclaration);
91579157
LookupParsedName(R, S, &SS);
91589158
R.suppressDiagnostics();
91599159

0 commit comments

Comments
 (0)