[clang] b10296e - [clang][NFC] Convert `Sema::PragmaClangSectionKind` to scoped enum
Vlad Serebrennikov via cfe-commits
cfe-commits at lists.llvm.org
Sun Apr 27 22:57:16 PDT 2025
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;
More information about the cfe-commits
mailing list