[clang] c2d47a9 - [clang][NFC] Convert `Sema::PragmaOptionsAlignKind` to scoped enum
Vlad Serebrennikov via cfe-commits
cfe-commits at lists.llvm.org
Sun Apr 27 23:30:25 PDT 2025
Author: Vlad Serebrennikov
Date: 2025-04-28T09:30:19+03:00
New Revision: c2d47a912f9bef427ff249f6e6ebfab89ac37902
URL: https://github.com/llvm/llvm-project/commit/c2d47a912f9bef427ff249f6e6ebfab89ac37902
DIFF: https://github.com/llvm/llvm-project/commit/c2d47a912f9bef427ff249f6e6ebfab89ac37902.diff
LOG: [clang][NFC] Convert `Sema::PragmaOptionsAlignKind` 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 0b57d50e2b22a..ce2aa0a0f0646 100644
--- a/clang/include/clang/Sema/Sema.h
+++ b/clang/include/clang/Sema/Sema.h
@@ -475,6 +475,15 @@ enum class PragmaClangSectionKind {
enum class PragmaClangSectionAction { Set = 0, Clear = 1 };
+enum class PragmaOptionsAlignKind {
+ Native, // #pragma options align=native
+ Natural, // #pragma options align=natural
+ Packed, // #pragma options align=packed
+ Power, // #pragma options align=power
+ Mac68k, // #pragma options align=mac68k
+ Reset // #pragma options align=reset
+};
+
/// Sema - This implements semantic analysis and AST building for C.
/// \nosubgrouping
class Sema final : public SemaBase {
@@ -1783,15 +1792,6 @@ class Sema final : public SemaBase {
/// Add _Nullable attributes for std:: types.
void inferNullableClassAttribute(CXXRecordDecl *CRD);
- enum PragmaOptionsAlignKind {
- POAK_Native, // #pragma options align=native
- POAK_Natural, // #pragma options align=natural
- POAK_Packed, // #pragma options align=packed
- POAK_Power, // #pragma options align=power
- POAK_Mac68k, // #pragma options align=mac68k
- POAK_Reset // #pragma options align=reset
- };
-
/// ActOnPragmaClangSection - Called on well formed \#pragma clang section
void ActOnPragmaClangSection(SourceLocation PragmaLoc,
PragmaClangSectionAction Action,
diff --git a/clang/lib/Parse/ParsePragma.cpp b/clang/lib/Parse/ParsePragma.cpp
index 1d419106bf92b..026a35639abdf 100644
--- a/clang/lib/Parse/ParsePragma.cpp
+++ b/clang/lib/Parse/ParsePragma.cpp
@@ -754,9 +754,8 @@ void Parser::HandlePragmaMSStruct() {
void Parser::HandlePragmaAlign() {
assert(Tok.is(tok::annot_pragma_align));
- Sema::PragmaOptionsAlignKind Kind =
- static_cast<Sema::PragmaOptionsAlignKind>(
- reinterpret_cast<uintptr_t>(Tok.getAnnotationValue()));
+ PragmaOptionsAlignKind Kind = static_cast<PragmaOptionsAlignKind>(
+ reinterpret_cast<uintptr_t>(Tok.getAnnotationValue()));
Actions.ActOnPragmaOptionsAlign(Kind, Tok.getLocation());
// Consume the token after processing the pragma to enable pragma-specific
// #include warnings.
@@ -2393,20 +2392,20 @@ static void ParseAlignPragma(Preprocessor &PP, Token &FirstTok,
return;
}
- Sema::PragmaOptionsAlignKind Kind = Sema::POAK_Natural;
+ PragmaOptionsAlignKind Kind = PragmaOptionsAlignKind::Natural;
const IdentifierInfo *II = Tok.getIdentifierInfo();
if (II->isStr("native"))
- Kind = Sema::POAK_Native;
+ Kind = PragmaOptionsAlignKind::Native;
else if (II->isStr("natural"))
- Kind = Sema::POAK_Natural;
+ Kind = PragmaOptionsAlignKind::Natural;
else if (II->isStr("packed"))
- Kind = Sema::POAK_Packed;
+ Kind = PragmaOptionsAlignKind::Packed;
else if (II->isStr("power"))
- Kind = Sema::POAK_Power;
+ Kind = PragmaOptionsAlignKind::Power;
else if (II->isStr("mac68k"))
- Kind = Sema::POAK_Mac68k;
+ Kind = PragmaOptionsAlignKind::Mac68k;
else if (II->isStr("reset"))
- Kind = Sema::POAK_Reset;
+ Kind = PragmaOptionsAlignKind::Reset;
else {
PP.Diag(Tok.getLocation(), diag::warn_pragma_align_invalid_option)
<< IsOptions;
diff --git a/clang/lib/Sema/SemaAttr.cpp b/clang/lib/Sema/SemaAttr.cpp
index bade3a0502a2c..44726c4cea123 100644
--- a/clang/lib/Sema/SemaAttr.cpp
+++ b/clang/lib/Sema/SemaAttr.cpp
@@ -339,23 +339,23 @@ void Sema::ActOnPragmaOptionsAlign(PragmaOptionsAlignKind Kind,
switch (Kind) {
// For most of the platforms we support, native and natural are the same.
// With XL, native is the same as power, natural means something else.
- case POAK_Native:
- case POAK_Power:
+ case PragmaOptionsAlignKind::Native:
+ case PragmaOptionsAlignKind::Power:
Action = Sema::PSK_Push_Set;
break;
- case POAK_Natural:
+ case PragmaOptionsAlignKind::Natural:
Action = Sema::PSK_Push_Set;
ModeVal = AlignPackInfo::Natural;
break;
// Note that '#pragma options align=packed' is not equivalent to attribute
// packed, it has a
diff erent precedence relative to attribute aligned.
- case POAK_Packed:
+ case PragmaOptionsAlignKind::Packed:
Action = Sema::PSK_Push_Set;
ModeVal = AlignPackInfo::Packed;
break;
- case POAK_Mac68k:
+ case PragmaOptionsAlignKind::Mac68k:
// Check if the target supports this.
if (!this->Context.getTargetInfo().hasAlignMac68kSupport()) {
Diag(PragmaLoc, diag::err_pragma_options_align_mac68k_target_unsupported);
@@ -364,7 +364,7 @@ void Sema::ActOnPragmaOptionsAlign(PragmaOptionsAlignKind Kind,
Action = Sema::PSK_Push_Set;
ModeVal = AlignPackInfo::Mac68k;
break;
- case POAK_Reset:
+ case PragmaOptionsAlignKind::Reset:
// Reset just pops the top of the stack, or resets the current alignment to
// default.
Action = Sema::PSK_Pop;
More information about the cfe-commits
mailing list