Skip to content

Commit 7e5cc89

Browse files
committed
Merge from 'main' to 'sycl-web' (#95)
CONFLICT (content): Merge conflict in clang/lib/Sema/SemaLookup.cpp
2 parents 067fb37 + efc82c4 commit 7e5cc89

File tree

376 files changed

+6266
-3663
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

376 files changed

+6266
-3663
lines changed

clang-tools-extra/clang-change-namespace/ChangeNamespace.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -632,8 +632,7 @@ void ChangeNamespaceTool::run(
632632
return;
633633
// Ignore out-of-line static methods since they will be handled by nested
634634
// name specifiers.
635-
if (Func->getCanonicalDecl()->getStorageClass() ==
636-
StorageClass::SC_Static &&
635+
if (Func->getCanonicalDecl()->getStorageClass() == StorageClass::Static &&
637636
Func->isOutOfLine())
638637
return;
639638
const auto *Context = Result.Nodes.getNodeAs<Decl>("dc");

clang-tools-extra/clang-tidy/google/FunctionNamingCheck.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ FixItHint generateFixItHint(const FunctionDecl *Decl) {
5151
// A fixit can be generated for functions of static storage class but
5252
// otherwise the check cannot determine the appropriate function name prefix
5353
// to use.
54-
if (Decl->getStorageClass() != SC_Static)
54+
if (Decl->getStorageClass() != StorageClass::Static)
5555
return FixItHint();
5656

5757
StringRef Name = Decl->getName();
@@ -109,7 +109,7 @@ void FunctionNamingCheck::registerMatchers(MatchFinder *Finder) {
109109
void FunctionNamingCheck::check(const MatchFinder::MatchResult &Result) {
110110
const auto *MatchedDecl = Result.Nodes.getNodeAs<FunctionDecl>("function");
111111

112-
bool IsGlobal = MatchedDecl->getStorageClass() != SC_Static;
112+
bool IsGlobal = MatchedDecl->getStorageClass() != StorageClass::Static;
113113
diag(MatchedDecl->getLocation(),
114114
"%select{static function|function in global namespace}1 named %0 must "
115115
"%select{be in|have an appropriate prefix followed by}1 Pascal case as "

clang-tools-extra/clang-tidy/google/GlobalVariableDeclarationCheck.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ namespace {
2626
AST_MATCHER(VarDecl, isLocalVariable) { return Node.isLocalVarDecl(); }
2727

2828
FixItHint generateFixItHint(const VarDecl *Decl, bool IsConst) {
29-
if (IsConst && (Decl->getStorageClass() != SC_Static)) {
29+
if (IsConst && (Decl->getStorageClass() != StorageClass::Static)) {
3030
// No fix available if it is not a static constant, since it is difficult
3131
// to determine the proper fix in this case.
3232
return FixItHint();

clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -359,8 +359,9 @@ void UseTrailingReturnTypeCheck::keepSpecifiers(
359359
// inline int.
360360
const auto *M = dyn_cast<CXXMethodDecl>(&F);
361361
if (!F.isConstexpr() && !F.isInlineSpecified() &&
362-
F.getStorageClass() != SC_Extern && F.getStorageClass() != SC_Static &&
363-
!Fr && !(M && M->isVirtualAsWritten()))
362+
F.getStorageClass() != StorageClass::Extern &&
363+
F.getStorageClass() != StorageClass::Static && !Fr &&
364+
!(M && M->isVirtualAsWritten()))
364365
return;
365366

366367
// Tokenize return type. If it contains macros which contain a mix of

clang-tools-extra/clangd/AST.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ class DeducedTypeVisitor : public RecursiveASTVisitor<DeducedTypeVisitor> {
367367
// Loc of auto in return type (c++14).
368368
auto CurLoc = D->getReturnTypeSourceRange().getBegin();
369369
// Loc of "auto" in operator auto()
370-
if (CurLoc.isInvalid() && dyn_cast<CXXConversionDecl>(D))
370+
if (CurLoc.isInvalid() && isa<CXXConversionDecl>(D))
371371
CurLoc = D->getTypeSourceInfo()->getTypeLoc().getBeginLoc();
372372
// Loc of "auto" in function with trailing return type (c++11).
373373
if (CurLoc.isInvalid())

clang-tools-extra/clangd/DumpAST.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,9 +242,8 @@ class DumpVisitor : public RecursiveASTVisitor<DumpVisitor> {
242242
return "const";
243243
return "";
244244
}
245-
if (isa<IntegerLiteral>(S) || isa<FloatingLiteral>(S) ||
246-
isa<FixedPointLiteral>(S) || isa<CharacterLiteral>(S) ||
247-
isa<ImaginaryLiteral>(S) || isa<CXXBoolLiteralExpr>(S))
245+
if (isa<IntegerLiteral, FloatingLiteral, FixedPointLiteral,
246+
CharacterLiteral, ImaginaryLiteral, CXXBoolLiteralExpr>(S))
248247
return toString([&](raw_ostream &OS) {
249248
S->printPretty(OS, nullptr, Ctx.getPrintingPolicy());
250249
});

clang-tools-extra/clangd/FindTarget.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -843,7 +843,7 @@ llvm::SmallVector<ReferenceLoc> refInStmt(const Stmt *S) {
843843
void VisitMemberExpr(const MemberExpr *E) {
844844
// Skip destructor calls to avoid duplication: TypeLoc within will be
845845
// visited separately.
846-
if (llvm::dyn_cast<CXXDestructorDecl>(E->getFoundDecl().getDecl()))
846+
if (llvm::isa<CXXDestructorDecl>(E->getFoundDecl().getDecl()))
847847
return;
848848
Refs.push_back(ReferenceLoc{E->getQualifierLoc(),
849849
E->getMemberNameInfo().getLoc(),

clang-tools-extra/clangd/refactor/Rename.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ const NamedDecl *canonicalRenameDecl(const NamedDecl *D) {
119119
// declaration.
120120
while (Method->isVirtual() && Method->size_overridden_methods())
121121
Method = *Method->overridden_methods().begin();
122-
return dyn_cast<NamedDecl>(Method->getCanonicalDecl());
122+
return Method->getCanonicalDecl();
123123
}
124124
if (const auto *Function = dyn_cast<FunctionDecl>(D))
125125
if (const FunctionTemplateDecl *Template = Function->getPrimaryTemplate())

clang-tools-extra/clangd/refactor/tweaks/ExpandAutoType.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ Expected<Tweak::Effect> ExpandAutoType::apply(const Selection& Inputs) {
111111

112112
// if it's a lambda expression, return an error message
113113
if (isa<RecordType>(*DeducedType) &&
114-
dyn_cast<RecordType>(*DeducedType)->getDecl()->isLambda()) {
114+
cast<RecordType>(*DeducedType)->getDecl()->isLambda()) {
115115
return error("Could not expand type of lambda expression");
116116
}
117117

clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ computeReferencedDecls(const clang::Expr *Expr) {
7979
}
8080
};
8181
FindDeclRefsVisitor Visitor;
82-
Visitor.TraverseStmt(const_cast<Stmt *>(dyn_cast<Stmt>(Expr)));
82+
Visitor.TraverseStmt(const_cast<Stmt *>(cast<Stmt>(Expr)));
8383
return Visitor.ReferencedDecls;
8484
}
8585

clang-tools-extra/clangd/refactor/tweaks/RemoveUsingNamespace.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ bool RemoveUsingNamespace::prepare(const Selection &Inputs) {
112112
TargetDirective = CA->ASTNode.get<UsingDirectiveDecl>();
113113
if (!TargetDirective)
114114
return false;
115-
if (!dyn_cast<Decl>(TargetDirective->getDeclContext()))
115+
if (!isa<Decl>(TargetDirective->getDeclContext()))
116116
return false;
117117
// FIXME: Unavailable for namespaces containing using-namespace decl.
118118
// It is non-trivial to deal with cases where identifiers come from the inner

clang-tools-extra/clangd/refactor/tweaks/SwapIfBranches.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,14 @@ bool SwapIfBranches::prepare(const Selection &Inputs) {
5454
for (const SelectionTree::Node *N = Inputs.ASTSelection.commonAncestor();
5555
N && !If; N = N->Parent) {
5656
// Stop once we hit a block, e.g. a lambda in the if condition.
57-
if (dyn_cast_or_null<CompoundStmt>(N->ASTNode.get<Stmt>()))
57+
if (llvm::isa_and_nonnull<CompoundStmt>(N->ASTNode.get<Stmt>()))
5858
return false;
5959
If = dyn_cast_or_null<IfStmt>(N->ASTNode.get<Stmt>());
6060
}
6161
// avoid dealing with single-statement brances, they require careful handling
6262
// to avoid changing semantics of the code (i.e. dangling else).
63-
return If && dyn_cast_or_null<CompoundStmt>(If->getThen()) &&
64-
dyn_cast_or_null<CompoundStmt>(If->getElse());
63+
return If && isa_and_nonnull<CompoundStmt>(If->getThen()) &&
64+
isa_and_nonnull<CompoundStmt>(If->getElse());
6565
}
6666

6767
Expected<Tweak::Effect> SwapIfBranches::apply(const Selection &Inputs) {

clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-macro-usage-custom.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
// FIXME: PR48646
2-
// UNSUPPORTED: system-windows
3-
41
// RUN: %check_clang_tidy %s cppcoreguidelines-macro-usage %t \
5-
// RUN: -config='{CheckOptions: \
6-
// RUN: [{key: cppcoreguidelines-macro-usage.AllowedRegexp, value: "DEBUG_*|TEST_*"}]}' --
2+
// RUN: -config="{CheckOptions: \
3+
// RUN: [{key: cppcoreguidelines-macro-usage.AllowedRegexp, value: 'DEBUG_*|TEST_*'}]}" --
74

85
#ifndef INCLUDE_GUARD
96
#define INCLUDE_GUARD

clang-tools-extra/test/clang-tidy/checkers/readability-identifier-naming-ignored-regexp.cpp

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
1-
// FIXME: PR48646
2-
// UNSUPPORTED: system-windows
3-
41
// RUN: %check_clang_tidy %s readability-identifier-naming %t -- \
5-
// RUN: -config='{CheckOptions: [ \
2+
// RUN: -config="{CheckOptions: [ \
63
// RUN: {key: readability-identifier-naming.ParameterCase, value: CamelCase}, \
7-
// RUN: {key: readability-identifier-naming.ParameterIgnoredRegexp, value: "^[a-z]{1,2}$"}, \
4+
// RUN: {key: readability-identifier-naming.ParameterIgnoredRegexp, value: '^[a-z]{1,2}$'}, \
85
// RUN: {key: readability-identifier-naming.ClassCase, value: CamelCase}, \
9-
// RUN: {key: readability-identifier-naming.ClassIgnoredRegexp, value: "^fo$|^fooo$"}, \
6+
// RUN: {key: readability-identifier-naming.ClassIgnoredRegexp, value: '^fo$|^fooo$'}, \
107
// RUN: {key: readability-identifier-naming.StructCase, value: CamelCase}, \
11-
// RUN: {key: readability-identifier-naming.StructIgnoredRegexp, value: "sooo|so|soo|$invalidregex["} \
12-
// RUN: ]}'
8+
// RUN: {key: readability-identifier-naming.StructIgnoredRegexp, value: 'sooo|so|soo|$invalidregex['} \
9+
// RUN: ]}"
1310

1411
int testFunc(int a, char **b);
1512
int testFunc(int ab, char **ba);

clang/include/clang/AST/Decl.h

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1058,7 +1058,7 @@ class VarDecl : public DeclaratorDecl, public Redeclarable<VarDecl> {
10581058
/// Returns true if a variable with function scope is a non-static local
10591059
/// variable.
10601060
bool hasLocalStorage() const {
1061-
if (getStorageClass() == SC_None) {
1061+
if (getStorageClass() == StorageClass::None) {
10621062
// OpenCL v1.2 s6.5.3: The __constant or constant address space name is
10631063
// used to describe variables allocated in global memory and which are
10641064
// accessed inside a kernel(s) as read-only variables. As such, variables
@@ -1070,29 +1070,40 @@ class VarDecl : public DeclaratorDecl, public Redeclarable<VarDecl> {
10701070
}
10711071

10721072
// Global Named Register (GNU extension)
1073-
if (getStorageClass() == SC_Register && !isLocalVarDeclOrParm())
1073+
if (getStorageClass() == StorageClass::Register && !isLocalVarDeclOrParm())
10741074
return false;
10751075

10761076
// Return true for: Auto, Register.
10771077
// Return false for: Extern, Static, PrivateExtern, OpenCLWorkGroupLocal.
10781078

1079-
return getStorageClass() >= SC_Auto;
1079+
switch (getStorageClass()) {
1080+
case StorageClass::Auto:
1081+
case StorageClass::Register:
1082+
return true;
1083+
case StorageClass::Extern:
1084+
case StorageClass::None:
1085+
case StorageClass::PrivateExtern:
1086+
case StorageClass::Static:
1087+
return false;
1088+
}
1089+
llvm_unreachable("unknown storage class");
10801090
}
10811091

10821092
/// Returns true if a variable with function scope is a static local
10831093
/// variable.
10841094
bool isStaticLocal() const {
1085-
return (getStorageClass() == SC_Static ||
1095+
return (getStorageClass() == StorageClass::Static ||
10861096
// C++11 [dcl.stc]p4
1087-
(getStorageClass() == SC_None && getTSCSpec() == TSCS_thread_local))
1088-
&& !isFileVarDecl();
1097+
(getStorageClass() == StorageClass::None &&
1098+
getTSCSpec() == TSCS_thread_local)) &&
1099+
!isFileVarDecl();
10891100
}
10901101

10911102
/// Returns true if a variable has extern or __private_extern__
10921103
/// storage.
10931104
bool hasExternalStorage() const {
1094-
return getStorageClass() == SC_Extern ||
1095-
getStorageClass() == SC_PrivateExtern;
1105+
return getStorageClass() == StorageClass::Extern ||
1106+
getStorageClass() == StorageClass::PrivateExtern;
10961107
}
10971108

10981109
/// Returns true for all variables that do not have local storage.
@@ -1594,15 +1605,15 @@ class ImplicitParamDecl : public VarDecl {
15941605
IdentifierInfo *Id, QualType Type,
15951606
ImplicitParamKind ParamKind)
15961607
: VarDecl(ImplicitParam, C, DC, IdLoc, IdLoc, Id, Type,
1597-
/*TInfo=*/nullptr, SC_None) {
1608+
/*TInfo=*/nullptr, StorageClass::None) {
15981609
NonParmVarDeclBits.ImplicitParamKind = ParamKind;
15991610
setImplicit();
16001611
}
16011612

16021613
ImplicitParamDecl(ASTContext &C, QualType Type, ImplicitParamKind ParamKind)
16031614
: VarDecl(ImplicitParam, C, /*DC=*/nullptr, SourceLocation(),
16041615
SourceLocation(), /*Id=*/nullptr, Type,
1605-
/*TInfo=*/nullptr, SC_None) {
1616+
/*TInfo=*/nullptr, StorageClass::None) {
16061617
NonParmVarDeclBits.ImplicitParamKind = ParamKind;
16071618
setImplicit();
16081619
}
@@ -2539,7 +2550,7 @@ class FunctionDecl : public DeclaratorDecl,
25392550

25402551
/// Sets the storage class as written in the source.
25412552
void setStorageClass(StorageClass SClass) {
2542-
FunctionDeclBits.SClass = SClass;
2553+
FunctionDeclBits.SClass = static_cast<uint64_t>(SClass);
25432554
}
25442555

25452556
/// Determine whether the "inline" keyword was specified for this
@@ -2566,7 +2577,7 @@ class FunctionDecl : public DeclaratorDecl,
25662577

25672578
bool doesDeclarationForceExternallyVisibleDefinition() const;
25682579

2569-
bool isStatic() const { return getStorageClass() == SC_Static; }
2580+
bool isStatic() const { return getStorageClass() == StorageClass::Static; }
25702581

25712582
/// Whether this function declaration represents an C++ overloaded
25722583
/// operator, e.g., "operator+".

clang/include/clang/AST/DeclCXX.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1843,7 +1843,7 @@ class CXXDeductionGuideDecl : public FunctionDecl {
18431843
const DeclarationNameInfo &NameInfo, QualType T,
18441844
TypeSourceInfo *TInfo, SourceLocation EndLocation)
18451845
: FunctionDecl(CXXDeductionGuide, C, DC, StartLoc, NameInfo, T, TInfo,
1846-
SC_None, false, ConstexprSpecKind::Unspecified),
1846+
StorageClass::None, false, ConstexprSpecKind::Unspecified),
18471847
ExplicitSpec(ES) {
18481848
if (EndLocation.isValid())
18491849
setRangeEnd(EndLocation);
@@ -2657,8 +2657,8 @@ class CXXDestructorDecl : public CXXMethodDecl {
26572657
bool isImplicitlyDeclared, ConstexprSpecKind ConstexprKind,
26582658
Expr *TrailingRequiresClause = nullptr)
26592659
: CXXMethodDecl(CXXDestructor, C, RD, StartLoc, NameInfo, T, TInfo,
2660-
SC_None, isInline, ConstexprKind, SourceLocation(),
2661-
TrailingRequiresClause) {
2660+
StorageClass::None, isInline, ConstexprKind,
2661+
SourceLocation(), TrailingRequiresClause) {
26622662
setImplicit(isImplicitlyDeclared);
26632663
}
26642664

@@ -2713,7 +2713,7 @@ class CXXConversionDecl : public CXXMethodDecl {
27132713
ConstexprSpecKind ConstexprKind, SourceLocation EndLocation,
27142714
Expr *TrailingRequiresClause = nullptr)
27152715
: CXXMethodDecl(CXXConversion, C, RD, StartLoc, NameInfo, T, TInfo,
2716-
SC_None, isInline, ConstexprKind, EndLocation,
2716+
StorageClass::None, isInline, ConstexprKind, EndLocation,
27172717
TrailingRequiresClause),
27182718
ExplicitSpec(ES) {}
27192719
void anchor() override;

clang/include/clang/AST/DeclOpenMP.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ class OMPCapturedExprDecl final : public VarDecl {
388388
QualType Type, TypeSourceInfo *TInfo,
389389
SourceLocation StartLoc)
390390
: VarDecl(OMPCapturedExpr, C, DC, StartLoc, StartLoc, Id, Type, TInfo,
391-
SC_None) {
391+
StorageClass::None) {
392392
setImplicit();
393393
}
394394

clang/include/clang/ASTMatchers/ASTMatchers.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4723,7 +4723,7 @@ AST_POLYMORPHIC_MATCHER(isExternC, AST_POLYMORPHIC_SUPPORTED_TYPES(FunctionDecl,
47234723
AST_POLYMORPHIC_MATCHER(isStaticStorageClass,
47244724
AST_POLYMORPHIC_SUPPORTED_TYPES(FunctionDecl,
47254725
VarDecl)) {
4726-
return Node.getStorageClass() == SC_Static;
4726+
return Node.getStorageClass() == StorageClass::Static;
47274727
}
47284728

47294729
/// Matches deleted function declarations.

clang/include/clang/Basic/Attr.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1954,15 +1954,15 @@ def IntelFPGAConstVar : SubsetSubject<Var,
19541954
def IntelFPGALocalStaticSlaveMemVar : SubsetSubject<Var,
19551955
[{S->getKind() != Decl::ImplicitParam &&
19561956
S->getKind() != Decl::NonTypeTemplateParm &&
1957-
(S->getStorageClass() == SC_Static ||
1957+
(S->getStorageClass() == StorageClass::Static ||
19581958
S->hasLocalStorage())}],
19591959
"local variables, static variables, slave memory arguments">;
19601960

19611961
def IntelFPGALocalOrStaticVar : SubsetSubject<Var,
19621962
[{S->getKind() != Decl::ImplicitParam &&
19631963
S->getKind() != Decl::ParmVar &&
19641964
S->getKind() != Decl::NonTypeTemplateParm &&
1965-
(S->getStorageClass() == SC_Static ||
1965+
(S->getStorageClass() == StorageClass::Static ||
19661966
S->hasLocalStorage())}],
19671967
"local variables, static variables">;
19681968

clang/include/clang/Basic/Specifiers.h

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -220,21 +220,31 @@ namespace clang {
220220
};
221221

222222
/// Storage classes.
223-
enum StorageClass {
223+
enum class StorageClass {
224224
// These are legal on both functions and variables.
225-
SC_None,
226-
SC_Extern,
227-
SC_Static,
228-
SC_PrivateExtern,
225+
None,
226+
Extern,
227+
Static,
228+
PrivateExtern,
229229

230230
// These are only legal on variables.
231-
SC_Auto,
232-
SC_Register
231+
Auto,
232+
Register
233233
};
234234

235235
/// Checks whether the given storage class is legal for functions.
236236
inline bool isLegalForFunction(StorageClass SC) {
237-
return SC <= SC_PrivateExtern;
237+
switch (SC) {
238+
case StorageClass::None:
239+
case StorageClass::Extern:
240+
case StorageClass::Static:
241+
case StorageClass::PrivateExtern:
242+
return true;
243+
case StorageClass::Auto:
244+
case StorageClass::Register:
245+
return false;
246+
}
247+
llvm_unreachable("unknown storage class");
238248
}
239249

240250
/// Checks whether the given storage class is legal for variables.

clang/lib/AST/ASTContext.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10708,7 +10708,7 @@ bool ASTContext::DeclMustBeEmitted(const Decl *D) {
1070810708
if (!VD->isFileVarDecl())
1070910709
return false;
1071010710
// Global named register variables (GNU extension) are never emitted.
10711-
if (VD->getStorageClass() == SC_Register)
10711+
if (VD->getStorageClass() == StorageClass::Register)
1071210712
return false;
1071310713
if (VD->getDescribedVarTemplate() ||
1071410714
isa<VarTemplatePartialSpecializationDecl>(VD))
@@ -11482,7 +11482,7 @@ bool ASTContext::mayExternalizeStaticVar(const Decl *D) const {
1148211482
(D->hasAttr<CUDAConstantAttr>() &&
1148311483
!D->getAttr<CUDAConstantAttr>()->isImplicit())) &&
1148411484
isa<VarDecl>(D) && cast<VarDecl>(D)->isFileVarDecl() &&
11485-
cast<VarDecl>(D)->getStorageClass() == SC_Static;
11485+
cast<VarDecl>(D)->getStorageClass() == StorageClass::Static;
1148611486
}
1148711487

1148811488
bool ASTContext::shouldExternalizeStaticVar(const Decl *D) const {

0 commit comments

Comments
 (0)