diff options
author | Vlad Serebrennikov <serebrennikov.vladislav@gmail.com> | 2025-05-02 07:49:25 +0300 |
---|---|---|
committer | Vlad Serebrennikov <serebrennikov.vladislav@gmail.com> | 2025-05-02 07:49:47 +0300 |
commit | ed673aac7aa78896ec55aa615e37432006c2830a (patch) | |
tree | 5e9ae0172f5eb72abb9bfcf7a5f69c4dae21e3e0 | |
parent | 8089c3d1edf0f880415bfbc155571f4a43fcdf17 (diff) | |
download | llvm-ed673aac7aa78896ec55aa615e37432006c2830a.zip llvm-ed673aac7aa78896ec55aa615e37432006c2830a.tar.gz llvm-ed673aac7aa78896ec55aa615e37432006c2830a.tar.bz2 |
[clang][NFC] Convert `Sema::OffsetOfKind` to scoped enum
-rw-r--r-- | clang/include/clang/Parse/Parser.h | 2 | ||||
-rw-r--r-- | clang/include/clang/Parse/RAIIObjectsForParser.h | 6 | ||||
-rw-r--r-- | clang/include/clang/Sema/Sema.h | 20 | ||||
-rw-r--r-- | clang/lib/Parse/ParseExpr.cpp | 4 | ||||
-rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 4 | ||||
-rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 3 | ||||
-rw-r--r-- | clang/lib/Sema/SemaTemplate.cpp | 2 |
7 files changed, 21 insertions, 20 deletions
diff --git a/clang/include/clang/Parse/Parser.h b/clang/include/clang/Parse/Parser.h index c30fe7c..84d4613 100644 --- a/clang/include/clang/Parse/Parser.h +++ b/clang/include/clang/Parse/Parser.h @@ -374,7 +374,7 @@ class Parser : public CodeCompletionHandler { /// function call. bool CalledSignatureHelp = false; - Sema::OffsetOfKind OffsetOfState = Sema::OffsetOfKind::OOK_Outside; + OffsetOfKind OffsetOfState = OffsetOfKind::Outside; /// The "depth" of the template parameters currently being parsed. unsigned TemplateParameterDepth; diff --git a/clang/include/clang/Parse/RAIIObjectsForParser.h b/clang/include/clang/Parse/RAIIObjectsForParser.h index 480efcc..3adcbfe 100644 --- a/clang/include/clang/Parse/RAIIObjectsForParser.h +++ b/clang/include/clang/Parse/RAIIObjectsForParser.h @@ -361,11 +361,11 @@ namespace clang { }; class OffsetOfStateRAIIObject { - Sema::OffsetOfKind &OffsetOfState; - Sema::OffsetOfKind OldValue; + OffsetOfKind &OffsetOfState; + OffsetOfKind OldValue; public: - OffsetOfStateRAIIObject(Parser &P, Sema::OffsetOfKind Value) + OffsetOfStateRAIIObject(Parser &P, OffsetOfKind Value) : OffsetOfState(P.OffsetOfState), OldValue(P.OffsetOfState) { OffsetOfState = Value; } diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h index e641a4a..d874adf 100644 --- a/clang/include/clang/Sema/Sema.h +++ b/clang/include/clang/Sema/Sema.h @@ -609,6 +609,16 @@ enum class NonTagKind { TemplateTemplateArgument, }; +enum class OffsetOfKind { + // Not parsing a type within __builtin_offsetof. + Outside, + // Parsing a type within __builtin_offsetof. + Builtin, + // Parsing a type within macro "offsetof", defined in __buitin_offsetof + // To improve our diagnostic message. + Macro, +}; + /// Sema - This implements semantic analysis and AST building for C. /// \nosubgrouping class Sema final : public SemaBase { @@ -4001,16 +4011,6 @@ public: bool isDefinition, SourceLocation NewTagLoc, const IdentifierInfo *Name); - enum OffsetOfKind { - // Not parsing a type within __builtin_offsetof. - OOK_Outside, - // Parsing a type within __builtin_offsetof. - OOK_Builtin, - // Parsing a type within macro "offsetof", defined in __buitin_offsetof - // To improve our diagnostic message. - OOK_Macro, - }; - /// This is invoked when we see 'struct foo' or 'struct {'. In the /// former case, Name will be non-null. In the later case, Name will be null. /// TagSpec indicates what kind of tag this is. TUK indicates whether this is diff --git a/clang/lib/Parse/ParseExpr.cpp b/clang/lib/Parse/ParseExpr.cpp index a5dd085..4b5d677 100644 --- a/clang/lib/Parse/ParseExpr.cpp +++ b/clang/lib/Parse/ParseExpr.cpp @@ -2796,12 +2796,12 @@ ExprResult Parser::ParseBuiltinPrimaryExpression() { } case tok::kw___builtin_offsetof: { SourceLocation TypeLoc = Tok.getLocation(); - auto OOK = Sema::OffsetOfKind::OOK_Builtin; + auto OOK = OffsetOfKind::Builtin; if (Tok.getLocation().isMacroID()) { StringRef MacroName = Lexer::getImmediateMacroNameForDiagnostics( Tok.getLocation(), PP.getSourceManager(), getLangOpts()); if (MacroName == "offsetof") - OOK = Sema::OffsetOfKind::OOK_Macro; + OOK = OffsetOfKind::Macro; } TypeResult Ty; { diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index d4c0fe6..22a8b19 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -18240,10 +18240,10 @@ CreateNewDecl: } // Only C23 and later allow defining new types in 'offsetof()'. - if (OOK != OOK_Outside && TUK == TagUseKind::Definition && + if (OOK != OffsetOfKind::Outside && TUK == TagUseKind::Definition && !getLangOpts().CPlusPlus && !getLangOpts().C23) Diag(New->getLocation(), diag::ext_type_defined_in_offsetof) - << (OOK == OOK_Macro) << New->getSourceRange(); + << (OOK == OffsetOfKind::Macro) << New->getSourceRange(); // C++11 [dcl.type]p3: // A type-specifier-seq shall not define a class or enumeration [...]. diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index a7e6868..f02fc85 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -18000,7 +18000,8 @@ DeclResult Sema::ActOnTemplatedFriendTag( /*ScopedEnumUsesClassTag=*/false, /*UnderlyingType=*/TypeResult(), /*IsTypeSpecifier=*/false, - /*IsTemplateParamOrArg=*/false, /*OOK=*/OOK_Outside); + /*IsTemplateParamOrArg=*/false, + /*OOK=*/OffsetOfKind::Outside); } ElaboratedTypeKeyword Keyword diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp index c062837..466e6b5 100644 --- a/clang/lib/Sema/SemaTemplate.cpp +++ b/clang/lib/Sema/SemaTemplate.cpp @@ -10070,7 +10070,7 @@ Sema::ActOnExplicitInstantiation(Scope *S, SourceLocation ExternLoc, Attr, AS_none, /*ModulePrivateLoc=*/SourceLocation(), MultiTemplateParamsArg(), Owned, IsDependent, SourceLocation(), false, TypeResult(), /*IsTypeSpecifier*/ false, - /*IsTemplateParamOrArg*/ false, /*OOK=*/OOK_Outside) + /*IsTemplateParamOrArg*/ false, /*OOK=*/OffsetOfKind::Outside) .get(); assert(!IsDependent && "explicit instantiation of dependent name not yet handled"); |