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;


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to