Author: Vlad Serebrennikov Date: 2025-04-28T08:57:10+03:00 New Revision: b10296eff0c26497aac01b96d57a5dffacebec67
URL: https://github.com/llvm/llvm-project/commit/b10296eff0c26497aac01b96d57a5dffacebec67 DIFF: https://github.com/llvm/llvm-project/commit/b10296eff0c26497aac01b96d57a5dffacebec67.diff LOG: [clang][NFC] Convert `Sema::PragmaClangSectionKind` to scoped enum Added: Modified: clang/include/clang/Sema/Sema.h clang/lib/Parse/ParsePragma.cpp clang/lib/Sema/SemaAttr.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h index f75a9cdcb2a75..11b6f5934be4f 100644 --- a/clang/include/clang/Sema/Sema.h +++ b/clang/include/clang/Sema/Sema.h @@ -463,6 +463,16 @@ enum class FunctionEffectMode : uint8_t { Dependent // effect(expr) where expr is dependent. }; +/// pragma clang section kind +enum class PragmaClangSectionKind { + Invalid = 0, + BSS = 1, + Data = 2, + Rodata = 3, + Text = 4, + Relro = 5 +}; + /// Sema - This implements semantic analysis and AST building for C. /// \nosubgrouping class Sema final : public SemaBase { @@ -1412,16 +1422,6 @@ class Sema final : public SemaBase { /// Source location for newly created implicit MSInheritanceAttrs SourceLocation ImplicitMSInheritanceAttrLoc; - /// pragma clang section kind - enum PragmaClangSectionKind { - PCSK_Invalid = 0, - PCSK_BSS = 1, - PCSK_Data = 2, - PCSK_Rodata = 3, - PCSK_Text = 4, - PCSK_Relro = 5 - }; - enum PragmaClangSectionAction { PCSA_Set = 0, PCSA_Clear = 1 }; struct PragmaClangSection { diff --git a/clang/lib/Parse/ParsePragma.cpp b/clang/lib/Parse/ParsePragma.cpp index 17b2b30942582..e08364d20a4ab 100644 --- a/clang/lib/Parse/ParsePragma.cpp +++ b/clang/lib/Parse/ParsePragma.cpp @@ -2314,7 +2314,7 @@ void PragmaClangSectionHandler::HandlePragma(Preprocessor &PP, Token &FirstToken) { Token Tok; - auto SecKind = Sema::PragmaClangSectionKind::PCSK_Invalid; + auto SecKind = PragmaClangSectionKind::Invalid; PP.Lex(Tok); // eat 'section' while (Tok.isNot(tok::eod)) { @@ -2325,15 +2325,15 @@ void PragmaClangSectionHandler::HandlePragma(Preprocessor &PP, const IdentifierInfo *SecType = Tok.getIdentifierInfo(); if (SecType->isStr("bss")) - SecKind = Sema::PragmaClangSectionKind::PCSK_BSS; + SecKind = PragmaClangSectionKind::BSS; else if (SecType->isStr("data")) - SecKind = Sema::PragmaClangSectionKind::PCSK_Data; + SecKind = PragmaClangSectionKind::Data; else if (SecType->isStr("rodata")) - SecKind = Sema::PragmaClangSectionKind::PCSK_Rodata; + SecKind = PragmaClangSectionKind::Rodata; else if (SecType->isStr("relro")) - SecKind = Sema::PragmaClangSectionKind::PCSK_Relro; + SecKind = PragmaClangSectionKind::Relro; else if (SecType->isStr("text")) - SecKind = Sema::PragmaClangSectionKind::PCSK_Text; + SecKind = PragmaClangSectionKind::Text; else { PP.Diag(Tok.getLocation(), diag::err_pragma_expected_clang_section_name) << "clang section"; return; @@ -2342,7 +2342,7 @@ void PragmaClangSectionHandler::HandlePragma(Preprocessor &PP, SourceLocation PragmaLocation = Tok.getLocation(); PP.Lex(Tok); // eat ['bss'|'data'|'rodata'|'text'] if (Tok.isNot(tok::equal)) { - PP.Diag(Tok.getLocation(), diag::err_pragma_clang_section_expected_equal) << SecKind; + PP.Diag(Tok.getLocation(), diag::err_pragma_clang_section_expected_equal) << llvm::to_underlying(SecKind); return; } diff --git a/clang/lib/Sema/SemaAttr.cpp b/clang/lib/Sema/SemaAttr.cpp index 4cfe000dccf61..cdc71658e259e 100644 --- a/clang/lib/Sema/SemaAttr.cpp +++ b/clang/lib/Sema/SemaAttr.cpp @@ -393,21 +393,21 @@ void Sema::ActOnPragmaClangSection(SourceLocation PragmaLoc, PragmaClangSection *CSec; int SectionFlags = ASTContext::PSF_Read; switch (SecKind) { - case PragmaClangSectionKind::PCSK_BSS: + case PragmaClangSectionKind::BSS: CSec = &PragmaClangBSSSection; SectionFlags |= ASTContext::PSF_Write | ASTContext::PSF_ZeroInit; break; - case PragmaClangSectionKind::PCSK_Data: + case PragmaClangSectionKind::Data: CSec = &PragmaClangDataSection; SectionFlags |= ASTContext::PSF_Write; break; - case PragmaClangSectionKind::PCSK_Rodata: + case PragmaClangSectionKind::Rodata: CSec = &PragmaClangRodataSection; break; - case PragmaClangSectionKind::PCSK_Relro: + case PragmaClangSectionKind::Relro: CSec = &PragmaClangRelroSection; break; - case PragmaClangSectionKind::PCSK_Text: + case PragmaClangSectionKind::Text: CSec = &PragmaClangTextSection; SectionFlags |= ASTContext::PSF_Execute; break; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits