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