[clang] ab680c5 - Revert "[clang][NFC] Convert `Sema::PragmaMsStackAction` to scoped enum"
Vlad Serebrennikov via cfe-commits
cfe-commits at lists.llvm.org
Sun Apr 27 23:24:41 PDT 2025
Author: Vlad Serebrennikov
Date: 2025-04-28T09:24:25+03:00
New Revision: ab680c55c724ba894269fb687464961a2066c17f
URL: https://github.com/llvm/llvm-project/commit/ab680c55c724ba894269fb687464961a2066c17f
DIFF: https://github.com/llvm/llvm-project/commit/ab680c55c724ba894269fb687464961a2066c17f.diff
LOG: Revert "[clang][NFC] Convert `Sema::PragmaMsStackAction` to scoped enum"
This reverts commit bd2a3f8d90368288a73dd2ef1926f714acd9eff3.
Added:
Modified:
clang/include/clang/Sema/Sema.h
clang/lib/Parse/ParsePragma.cpp
clang/lib/Sema/SemaAttr.cpp
clang/lib/Serialization/ASTReader.cpp
Removed:
################################################################################
diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h
index 899f50cbad599..0b57d50e2b22a 100644
--- a/clang/include/clang/Sema/Sema.h
+++ b/clang/include/clang/Sema/Sema.h
@@ -475,16 +475,6 @@ enum class PragmaClangSectionKind {
enum class PragmaClangSectionAction { Set = 0, Clear = 1 };
-enum PragmaMsStackAction {
- Reset = 0x0, // #pragma ()
- Set = 0x1, // #pragma (value)
- Push = 0x2, // #pragma (push[, id])
- Pop = 0x4, // #pragma (pop[, id])
- Show = 0x8, // #pragma (show) -- only for "pack"!
- PushSet = Push | Set, // #pragma (push[, id], value)
- PopSet = Pop | Set, // #pragma (pop[, id], value)
-};
-
/// Sema - This implements semantic analysis and AST building for C.
/// \nosubgrouping
class Sema final : public SemaBase {
@@ -1446,6 +1436,16 @@ class Sema final : public SemaBase {
PragmaClangSection PragmaClangRelroSection;
PragmaClangSection PragmaClangTextSection;
+ enum PragmaMsStackAction {
+ PSK_Reset = 0x0, // #pragma ()
+ PSK_Set = 0x1, // #pragma (value)
+ PSK_Push = 0x2, // #pragma (push[, id])
+ PSK_Pop = 0x4, // #pragma (pop[, id])
+ PSK_Show = 0x8, // #pragma (show) -- only for "pack"!
+ PSK_Push_Set = PSK_Push | PSK_Set, // #pragma (push[, id], value)
+ PSK_Pop_Set = PSK_Pop | PSK_Set, // #pragma (pop[, id], value)
+ };
+
struct PragmaPackInfo {
PragmaMsStackAction Action;
StringRef SlotLabel;
@@ -1569,15 +1569,15 @@ class Sema final : public SemaBase {
void Act(SourceLocation PragmaLocation, PragmaMsStackAction Action,
llvm::StringRef StackSlotLabel, ValueType Value) {
- if (Action == PragmaMsStackAction::Reset) {
+ if (Action == PSK_Reset) {
CurrentValue = DefaultValue;
CurrentPragmaLocation = PragmaLocation;
return;
}
- if (Action & PragmaMsStackAction::Push)
+ if (Action & PSK_Push)
Stack.emplace_back(StackSlotLabel, CurrentValue, CurrentPragmaLocation,
PragmaLocation);
- else if (Action & PragmaMsStackAction::Pop) {
+ else if (Action & PSK_Pop) {
if (!StackSlotLabel.empty()) {
// If we've got a label, try to find it and jump there.
auto I = llvm::find_if(llvm::reverse(Stack), [&](const Slot &x) {
@@ -1596,7 +1596,7 @@ class Sema final : public SemaBase {
Stack.pop_back();
}
}
- if (Action & PragmaMsStackAction::Set) {
+ if (Action & PSK_Set) {
CurrentValue = Value;
CurrentPragmaLocation = PragmaLocation;
}
@@ -1617,8 +1617,7 @@ class Sema final : public SemaBase {
//
// Push / pop a named sentinel slot.
void SentinelAction(PragmaMsStackAction Action, StringRef Label) {
- assert((Action == PragmaMsStackAction::Push ||
- Action == PragmaMsStackAction::Pop) &&
+ assert((Action == PSK_Push || Action == PSK_Pop) &&
"Can only push / pop #pragma stack sentinels!");
Act(CurrentPragmaLocation, Action, Label, CurrentValue);
}
@@ -1630,7 +1629,7 @@ class Sema final : public SemaBase {
bool hasValue() const { return CurrentValue != DefaultValue; }
SmallVector<Slot, 2> Stack;
- ValueType DefaultValue; // Value used for PragmaMsStackAction::Reset action.
+ ValueType DefaultValue; // Value used for PSK_Reset action.
ValueType CurrentValue;
SourceLocation CurrentPragmaLocation;
};
diff --git a/clang/lib/Parse/ParsePragma.cpp b/clang/lib/Parse/ParsePragma.cpp
index 1e3a64b4d0223..1d419106bf92b 100644
--- a/clang/lib/Parse/ParsePragma.cpp
+++ b/clang/lib/Parse/ParsePragma.cpp
@@ -869,8 +869,8 @@ void Parser::HandlePragmaFloatControl() {
// and the FloatControl is the lower 16 bits. Use shift and bit-and
// to decode the parts.
uintptr_t Value = reinterpret_cast<uintptr_t>(Tok.getAnnotationValue());
- PragmaMsStackAction Action =
- static_cast<PragmaMsStackAction>((Value >> 16) & 0xFFFF);
+ Sema::PragmaMsStackAction Action =
+ static_cast<Sema::PragmaMsStackAction>((Value >> 16) & 0xFFFF);
PragmaFloatControlKind Kind = PragmaFloatControlKind(Value & 0xFFFF);
SourceLocation PragmaLoc = ConsumeAnnotationToken();
Actions.ActOnPragmaFloatControl(PragmaLoc, Action, Kind);
@@ -1019,8 +1019,8 @@ void Parser::HandlePragmaMSPointersToMembers() {
void Parser::HandlePragmaMSVtorDisp() {
assert(Tok.is(tok::annot_pragma_ms_vtordisp));
uintptr_t Value = reinterpret_cast<uintptr_t>(Tok.getAnnotationValue());
- PragmaMsStackAction Action =
- static_cast<PragmaMsStackAction>((Value >> 16) & 0xFFFF);
+ Sema::PragmaMsStackAction Action =
+ static_cast<Sema::PragmaMsStackAction>((Value >> 16) & 0xFFFF);
MSVtorDispMode Mode = MSVtorDispMode(Value & 0xFFFF);
SourceLocation PragmaLoc = ConsumeAnnotationToken();
Actions.ActOnPragmaMSVtorDisp(Action, PragmaLoc, Mode);
@@ -1151,21 +1151,21 @@ bool Parser::HandlePragmaMSSegment(StringRef PragmaName,
return false;
}
PP.Lex(Tok); // (
- PragmaMsStackAction Action = PragmaMsStackAction::Reset;
+ Sema::PragmaMsStackAction Action = Sema::PSK_Reset;
StringRef SlotLabel;
if (Tok.isAnyIdentifier()) {
StringRef PushPop = Tok.getIdentifierInfo()->getName();
if (PushPop == "push")
- Action = PragmaMsStackAction::Push;
+ Action = Sema::PSK_Push;
else if (PushPop == "pop")
- Action = PragmaMsStackAction::Pop;
+ Action = Sema::PSK_Pop;
else {
PP.Diag(PragmaLocation,
diag::warn_pragma_expected_section_push_pop_or_name)
<< PragmaName;
return false;
}
- if (Action != PragmaMsStackAction::Reset) {
+ if (Action != Sema::PSK_Reset) {
PP.Lex(Tok); // push | pop
if (Tok.is(tok::comma)) {
PP.Lex(Tok); // ,
@@ -1191,12 +1191,10 @@ bool Parser::HandlePragmaMSSegment(StringRef PragmaName,
StringLiteral *SegmentName = nullptr;
if (Tok.isNot(tok::r_paren)) {
if (Tok.isNot(tok::string_literal)) {
- unsigned DiagID =
- Action != PragmaMsStackAction::Reset
- ? !SlotLabel.empty()
- ? diag::warn_pragma_expected_section_name
- : diag::warn_pragma_expected_section_label_or_name
- : diag::warn_pragma_expected_section_push_pop_or_name;
+ unsigned DiagID = Action != Sema::PSK_Reset ? !SlotLabel.empty() ?
+ diag::warn_pragma_expected_section_name :
+ diag::warn_pragma_expected_section_label_or_name :
+ diag::warn_pragma_expected_section_push_pop_or_name;
PP.Diag(PragmaLocation, DiagID) << PragmaName;
return false;
}
@@ -1211,7 +1209,7 @@ bool Parser::HandlePragmaMSSegment(StringRef PragmaName,
}
// Setting section "" has no effect
if (SegmentName->getLength())
- Action = (PragmaMsStackAction)(Action | PragmaMsStackAction::Set);
+ Action = (Sema::PragmaMsStackAction)(Action | Sema::PSK_Set);
}
if (Tok.isNot(tok::r_paren)) {
PP.Diag(PragmaLocation, diag::warn_pragma_expected_rparen) << PragmaName;
@@ -1300,23 +1298,23 @@ bool Parser::HandlePragmaMSStrictGuardStackCheck(
PragmaName))
return false;
- PragmaMsStackAction Action = PragmaMsStackAction::Set;
+ Sema::PragmaMsStackAction Action = Sema::PSK_Set;
if (Tok.is(tok::identifier)) {
StringRef PushPop = Tok.getIdentifierInfo()->getName();
if (PushPop == "push") {
PP.Lex(Tok);
- Action = PragmaMsStackAction::Push;
+ Action = Sema::PSK_Push;
if (ExpectAndConsume(tok::comma, diag::warn_pragma_expected_punc,
PragmaName))
return false;
} else if (PushPop == "pop") {
PP.Lex(Tok);
- Action = PragmaMsStackAction::Pop;
+ Action = Sema::PSK_Pop;
}
}
bool Value = false;
- if (Action & PragmaMsStackAction::Push || Action & PragmaMsStackAction::Set) {
+ if (Action & Sema::PSK_Push || Action & Sema::PSK_Set) {
const IdentifierInfo *II = Tok.getIdentifierInfo();
if (II && II->isStr("off")) {
PP.Lex(Tok);
@@ -2140,7 +2138,7 @@ void PragmaPackHandler::HandlePragma(Preprocessor &PP,
return;
}
- PragmaMsStackAction Action = PragmaMsStackAction::Reset;
+ Sema::PragmaMsStackAction Action = Sema::PSK_Reset;
StringRef SlotLabel;
Token Alignment;
Alignment.startToken();
@@ -2154,12 +2152,12 @@ void PragmaPackHandler::HandlePragma(Preprocessor &PP,
// the push/pop stack.
// In Apple gcc/XL, #pragma pack(4) is equivalent to #pragma pack(push, 4)
Action = (PP.getLangOpts().ApplePragmaPack || PP.getLangOpts().XLPragmaPack)
- ? PragmaMsStackAction::PushSet
- : PragmaMsStackAction::Set;
+ ? Sema::PSK_Push_Set
+ : Sema::PSK_Set;
} else if (Tok.is(tok::identifier)) {
// Map pragma pack options to pack (integer).
auto MapPack = [&](const char *Literal) {
- Action = PragmaMsStackAction::PushSet;
+ Action = Sema::PSK_Push_Set;
Alignment = Tok;
Alignment.setKind(tok::numeric_constant);
Alignment.setLiteralData(Literal);
@@ -2168,7 +2166,7 @@ void PragmaPackHandler::HandlePragma(Preprocessor &PP,
const IdentifierInfo *II = Tok.getIdentifierInfo();
if (II->isStr("show")) {
- Action = PragmaMsStackAction::Show;
+ Action = Sema::PSK_Show;
PP.Lex(Tok);
} else if (II->isStr("packed") && PP.getLangOpts().ZOSExt) {
// #pragma pack(packed) is the same as #pragma pack(1)
@@ -2184,13 +2182,13 @@ void PragmaPackHandler::HandlePragma(Preprocessor &PP,
PP.Lex(Tok);
} else if (II->isStr("reset") && PP.getLangOpts().ZOSExt) {
// #pragma pack(reset) is the same as #pragma pack(pop) on XL
- Action = PragmaMsStackAction::Pop;
+ Action = Sema::PSK_Pop;
PP.Lex(Tok);
} else {
if (II->isStr("push")) {
- Action = PragmaMsStackAction::Push;
+ Action = Sema::PSK_Push;
} else if (II->isStr("pop")) {
- Action = PragmaMsStackAction::Pop;
+ Action = Sema::PSK_Pop;
} else {
PP.Diag(Tok.getLocation(), diag::warn_pragma_invalid_action) << "pack";
return;
@@ -2201,7 +2199,7 @@ void PragmaPackHandler::HandlePragma(Preprocessor &PP,
PP.Lex(Tok);
if (Tok.is(tok::numeric_constant)) {
- Action = (PragmaMsStackAction)(Action | PragmaMsStackAction::Set);
+ Action = (Sema::PragmaMsStackAction)(Action | Sema::PSK_Set);
Alignment = Tok;
PP.Lex(Tok);
@@ -2217,7 +2215,7 @@ void PragmaPackHandler::HandlePragma(Preprocessor &PP,
return;
}
- Action = (PragmaMsStackAction)(Action | PragmaMsStackAction::Set);
+ Action = (Sema::PragmaMsStackAction)(Action | Sema::PSK_Set);
Alignment = Tok;
PP.Lex(Tok);
@@ -2234,7 +2232,7 @@ void PragmaPackHandler::HandlePragma(Preprocessor &PP,
// the push/pop stack.
// In Apple gcc and IBM XL, #pragma pack() is equivalent to #pragma
// pack(pop).
- Action = PragmaMsStackAction::Pop;
+ Action = Sema::PSK_Pop;
}
if (Tok.isNot(tok::r_paren)) {
@@ -2897,7 +2895,7 @@ void PragmaMSVtorDisp::HandlePragma(Preprocessor &PP,
}
PP.Lex(Tok);
- PragmaMsStackAction Action = PragmaMsStackAction::Set;
+ Sema::PragmaMsStackAction Action = Sema::PSK_Set;
const IdentifierInfo *II = Tok.getIdentifierInfo();
if (II) {
if (II->isStr("push")) {
@@ -2908,24 +2906,24 @@ void PragmaMSVtorDisp::HandlePragma(Preprocessor &PP,
return;
}
PP.Lex(Tok);
- Action = PragmaMsStackAction::PushSet;
+ Action = Sema::PSK_Push_Set;
// not push, could be on/off
} else if (II->isStr("pop")) {
// #pragma vtordisp(pop)
PP.Lex(Tok);
- Action = PragmaMsStackAction::Pop;
+ Action = Sema::PSK_Pop;
}
// not push or pop, could be on/off
} else {
if (Tok.is(tok::r_paren)) {
// #pragma vtordisp()
- Action = PragmaMsStackAction::Reset;
+ Action = Sema::PSK_Reset;
}
}
uint64_t Value = 0;
- if (Action & PragmaMsStackAction::Push || Action & PragmaMsStackAction::Set) {
+ if (Action & Sema::PSK_Push || Action & Sema::PSK_Set) {
const IdentifierInfo *II = Tok.getIdentifierInfo();
if (II && II->isStr("off")) {
PP.Lex(Tok);
@@ -3016,7 +3014,7 @@ void PragmaMSPragma::HandlePragma(Preprocessor &PP,
void PragmaFloatControlHandler::HandlePragma(Preprocessor &PP,
PragmaIntroducer Introducer,
Token &Tok) {
- PragmaMsStackAction Action = PragmaMsStackAction::Set;
+ Sema::PragmaMsStackAction Action = Sema::PSK_Set;
SourceLocation FloatControlLoc = Tok.getLocation();
Token PragmaName = Tok;
if (!PP.getTargetInfo().hasStrictFP() && !PP.getLangOpts().ExpStrictFP) {
@@ -3056,8 +3054,7 @@ void PragmaFloatControlHandler::HandlePragma(Preprocessor &PP,
return;
}
PP.Lex(Tok); // Eat the r_paren
- Action = (Kind == PFC_Pop) ? PragmaMsStackAction::Pop
- : PragmaMsStackAction::Push;
+ Action = (Kind == PFC_Pop) ? Sema::PSK_Pop : Sema::PSK_Push;
} else {
if (Tok.is(tok::r_paren))
// Selecting Precise or Except
@@ -3081,7 +3078,7 @@ void PragmaFloatControlHandler::HandlePragma(Preprocessor &PP,
if (Kind == PFC_Except)
Kind = PFC_NoExcept;
} else if (PushOnOff == "push") {
- Action = PragmaMsStackAction::PushSet;
+ Action = Sema::PSK_Push_Set;
} else {
PP.Diag(Tok.getLocation(), diag::err_pragma_float_control_malformed);
return;
@@ -3095,7 +3092,7 @@ void PragmaFloatControlHandler::HandlePragma(Preprocessor &PP,
}
StringRef ExpectedPush = Tok.getIdentifierInfo()->getName();
if (ExpectedPush == "push") {
- Action = PragmaMsStackAction::PushSet;
+ Action = Sema::PSK_Push_Set;
} else {
PP.Diag(Tok.getLocation(), diag::err_pragma_float_control_malformed);
return;
diff --git a/clang/lib/Sema/SemaAttr.cpp b/clang/lib/Sema/SemaAttr.cpp
index e0ebbd6e092a5..bade3a0502a2c 100644
--- a/clang/lib/Sema/SemaAttr.cpp
+++ b/clang/lib/Sema/SemaAttr.cpp
@@ -31,25 +31,23 @@ Sema::PragmaStackSentinelRAII::PragmaStackSentinelRAII(Sema &S,
bool ShouldAct)
: S(S), SlotLabel(SlotLabel), ShouldAct(ShouldAct) {
if (ShouldAct) {
- S.VtorDispStack.SentinelAction(PragmaMsStackAction::Push, SlotLabel);
- S.DataSegStack.SentinelAction(PragmaMsStackAction::Push, SlotLabel);
- S.BSSSegStack.SentinelAction(PragmaMsStackAction::Push, SlotLabel);
- S.ConstSegStack.SentinelAction(PragmaMsStackAction::Push, SlotLabel);
- S.CodeSegStack.SentinelAction(PragmaMsStackAction::Push, SlotLabel);
- S.StrictGuardStackCheckStack.SentinelAction(PragmaMsStackAction::Push,
- SlotLabel);
+ S.VtorDispStack.SentinelAction(PSK_Push, SlotLabel);
+ S.DataSegStack.SentinelAction(PSK_Push, SlotLabel);
+ S.BSSSegStack.SentinelAction(PSK_Push, SlotLabel);
+ S.ConstSegStack.SentinelAction(PSK_Push, SlotLabel);
+ S.CodeSegStack.SentinelAction(PSK_Push, SlotLabel);
+ S.StrictGuardStackCheckStack.SentinelAction(PSK_Push, SlotLabel);
}
}
Sema::PragmaStackSentinelRAII::~PragmaStackSentinelRAII() {
if (ShouldAct) {
- S.VtorDispStack.SentinelAction(PragmaMsStackAction::Pop, SlotLabel);
- S.DataSegStack.SentinelAction(PragmaMsStackAction::Pop, SlotLabel);
- S.BSSSegStack.SentinelAction(PragmaMsStackAction::Pop, SlotLabel);
- S.ConstSegStack.SentinelAction(PragmaMsStackAction::Pop, SlotLabel);
- S.CodeSegStack.SentinelAction(PragmaMsStackAction::Pop, SlotLabel);
- S.StrictGuardStackCheckStack.SentinelAction(PragmaMsStackAction::Pop,
- SlotLabel);
+ S.VtorDispStack.SentinelAction(PSK_Pop, SlotLabel);
+ S.DataSegStack.SentinelAction(PSK_Pop, SlotLabel);
+ S.BSSSegStack.SentinelAction(PSK_Pop, SlotLabel);
+ S.ConstSegStack.SentinelAction(PSK_Pop, SlotLabel);
+ S.CodeSegStack.SentinelAction(PSK_Pop, SlotLabel);
+ S.StrictGuardStackCheckStack.SentinelAction(PSK_Pop, SlotLabel);
}
}
@@ -335,7 +333,7 @@ void Sema::inferNullableClassAttribute(CXXRecordDecl *CRD) {
void Sema::ActOnPragmaOptionsAlign(PragmaOptionsAlignKind Kind,
SourceLocation PragmaLoc) {
- PragmaMsStackAction Action = PragmaMsStackAction::Reset;
+ PragmaMsStackAction Action = Sema::PSK_Reset;
AlignPackInfo::Mode ModeVal = AlignPackInfo::Native;
switch (Kind) {
@@ -343,17 +341,17 @@ void Sema::ActOnPragmaOptionsAlign(PragmaOptionsAlignKind Kind,
// With XL, native is the same as power, natural means something else.
case POAK_Native:
case POAK_Power:
- Action = PragmaMsStackAction::PushSet;
+ Action = Sema::PSK_Push_Set;
break;
case POAK_Natural:
- Action = PragmaMsStackAction::PushSet;
+ 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:
- Action = PragmaMsStackAction::PushSet;
+ Action = Sema::PSK_Push_Set;
ModeVal = AlignPackInfo::Packed;
break;
@@ -363,17 +361,17 @@ void Sema::ActOnPragmaOptionsAlign(PragmaOptionsAlignKind Kind,
Diag(PragmaLoc, diag::err_pragma_options_align_mac68k_target_unsupported);
return;
}
- Action = PragmaMsStackAction::PushSet;
+ Action = Sema::PSK_Push_Set;
ModeVal = AlignPackInfo::Mac68k;
break;
case POAK_Reset:
// Reset just pops the top of the stack, or resets the current alignment to
// default.
- Action = PragmaMsStackAction::Pop;
+ Action = Sema::PSK_Pop;
if (AlignPackStack.Stack.empty()) {
if (AlignPackStack.CurrentValue.getAlignMode() != AlignPackInfo::Native ||
AlignPackStack.CurrentValue.IsPackAttr()) {
- Action = PragmaMsStackAction::Reset;
+ Action = Sema::PSK_Reset;
} else {
Diag(PragmaLoc, diag::warn_pragma_options_align_reset_failed)
<< "stack empty";
@@ -474,7 +472,7 @@ void Sema::ActOnPragmaPack(SourceLocation PragmaLoc, PragmaMsStackAction Action,
AlignmentVal = (unsigned)Val->getZExtValue();
}
- if (Action == PragmaMsStackAction::Show) {
+ if (Action == Sema::PSK_Show) {
// Show the current alignment, making sure to show the right value
// for the default.
// FIXME: This should come from the target.
@@ -488,7 +486,7 @@ void Sema::ActOnPragmaPack(SourceLocation PragmaLoc, PragmaMsStackAction Action,
// MSDN, C/C++ Preprocessor Reference > Pragma Directives > pack:
// "#pragma pack(pop, identifier, n) is undefined"
- if (Action & PragmaMsStackAction::Pop) {
+ if (Action & Sema::PSK_Pop) {
if (Alignment && !SlotLabel.empty())
Diag(PragmaLoc, diag::warn_pragma_pack_pop_identifier_and_alignment);
if (AlignPackStack.Stack.empty()) {
@@ -658,7 +656,7 @@ void Sema::ActOnPragmaFPEvalMethod(SourceLocation Loc,
Diag(Loc, diag::err_setting_eval_method_used_in_unsafe_context) << 0 << 1;
if (getLangOpts().AllowRecip)
Diag(Loc, diag::err_setting_eval_method_used_in_unsafe_context) << 0 << 2;
- FpPragmaStack.Act(Loc, PragmaMsStackAction::Set, StringRef(), NewFPFeatures);
+ FpPragmaStack.Act(Loc, PSK_Set, StringRef(), NewFPFeatures);
CurFPFeatures = NewFPFeatures.applyOverrides(getLangOpts());
PP.setCurrentFPEvalMethod(Loc, Value);
}
@@ -667,9 +665,7 @@ void Sema::ActOnPragmaFloatControl(SourceLocation Loc,
PragmaMsStackAction Action,
PragmaFloatControlKind Value) {
FPOptionsOverride NewFPFeatures = CurFPFeatureOverrides();
- if ((Action == PragmaMsStackAction::PushSet ||
- Action == PragmaMsStackAction::Push ||
- Action == PragmaMsStackAction::Pop) &&
+ if ((Action == PSK_Push_Set || Action == PSK_Push || Action == PSK_Pop) &&
!CurContext->getRedeclContext()->isFileContext()) {
// Push and pop can only occur at file or namespace scope, or within a
// language linkage declaration.
@@ -704,8 +700,7 @@ void Sema::ActOnPragmaFloatControl(SourceLocation Loc,
FpPragmaStack.Act(Loc, Action, StringRef(), NewFPFeatures);
break;
case PFC_Push:
- FpPragmaStack.Act(Loc, PragmaMsStackAction::PushSet, StringRef(),
- NewFPFeatures);
+ FpPragmaStack.Act(Loc, Sema::PSK_Push_Set, StringRef(), NewFPFeatures);
break;
case PFC_Pop:
if (FpPragmaStack.Stack.empty()) {
@@ -730,7 +725,7 @@ void Sema::ActOnPragmaMSPointersToMembers(
void Sema::ActOnPragmaMSVtorDisp(PragmaMsStackAction Action,
SourceLocation PragmaLoc,
MSVtorDispMode Mode) {
- if (Action & PragmaMsStackAction::Pop && VtorDispStack.Stack.empty())
+ if (Action & PSK_Pop && VtorDispStack.Stack.empty())
Diag(PragmaLoc, diag::warn_pragma_pop_failed) << "vtordisp"
<< "stack empty";
VtorDispStack.Act(PragmaLoc, Action, StringRef(), Mode);
@@ -741,15 +736,15 @@ void Sema::PragmaStack<Sema::AlignPackInfo>::Act(SourceLocation PragmaLocation,
PragmaMsStackAction Action,
llvm::StringRef StackSlotLabel,
AlignPackInfo Value) {
- if (Action == PragmaMsStackAction::Reset) {
+ if (Action == PSK_Reset) {
CurrentValue = DefaultValue;
CurrentPragmaLocation = PragmaLocation;
return;
}
- if (Action & PragmaMsStackAction::Push)
+ if (Action & PSK_Push)
Stack.emplace_back(Slot(StackSlotLabel, CurrentValue, CurrentPragmaLocation,
PragmaLocation));
- else if (Action & PragmaMsStackAction::Pop) {
+ else if (Action & PSK_Pop) {
if (!StackSlotLabel.empty()) {
// If we've got a label, try to find it and jump there.
auto I = llvm::find_if(llvm::reverse(Stack), [&](const Slot &x) {
@@ -792,7 +787,7 @@ void Sema::PragmaStack<Sema::AlignPackInfo>::Act(SourceLocation PragmaLocation,
Stack.pop_back();
}
}
- if (Action & PragmaMsStackAction::Set) {
+ if (Action & PSK_Set) {
CurrentValue = Value;
CurrentPragmaLocation = PragmaLocation;
}
@@ -861,7 +856,7 @@ void Sema::ActOnPragmaMSSeg(SourceLocation PragmaLocation,
.Case("bss_seg", &BSSSegStack)
.Case("const_seg", &ConstSegStack)
.Case("code_seg", &CodeSegStack);
- if (Action & PragmaMsStackAction::Pop && Stack->Stack.empty())
+ if (Action & PSK_Pop && Stack->Stack.empty())
Diag(PragmaLocation, diag::warn_pragma_pop_failed) << PragmaName
<< "stack empty";
if (SegmentName) {
@@ -880,8 +875,7 @@ void Sema::ActOnPragmaMSSeg(SourceLocation PragmaLocation,
void Sema::ActOnPragmaMSStrictGuardStackCheck(SourceLocation PragmaLocation,
PragmaMsStackAction Action,
bool Value) {
- if (Action & PragmaMsStackAction::Pop &&
- StrictGuardStackCheckStack.Stack.empty())
+ if (Action & PSK_Pop && StrictGuardStackCheckStack.Stack.empty())
Diag(PragmaLocation, diag::warn_pragma_pop_failed) << "strict_gs_check"
<< "stack empty";
@@ -1400,7 +1394,7 @@ void Sema::ActOnPragmaFPContract(SourceLocation Loc,
NewFPFeatures.setDisallowFPContract();
break;
}
- FpPragmaStack.Act(Loc, PragmaMsStackAction::Set, StringRef(), NewFPFeatures);
+ FpPragmaStack.Act(Loc, Sema::PSK_Set, StringRef(), NewFPFeatures);
CurFPFeatures = NewFPFeatures.applyOverrides(getLangOpts());
}
@@ -1436,14 +1430,14 @@ void Sema::ActOnPragmaFPValueChangingOption(SourceLocation Loc,
llvm_unreachable("unhandled value changing pragma fp");
}
- FpPragmaStack.Act(Loc, PragmaMsStackAction::Set, StringRef(), NewFPFeatures);
+ FpPragmaStack.Act(Loc, PSK_Set, StringRef(), NewFPFeatures);
CurFPFeatures = NewFPFeatures.applyOverrides(getLangOpts());
}
void Sema::ActOnPragmaFEnvRound(SourceLocation Loc, llvm::RoundingMode FPR) {
FPOptionsOverride NewFPFeatures = CurFPFeatureOverrides();
NewFPFeatures.setConstRoundingModeOverride(FPR);
- FpPragmaStack.Act(Loc, PragmaMsStackAction::Set, StringRef(), NewFPFeatures);
+ FpPragmaStack.Act(Loc, PSK_Set, StringRef(), NewFPFeatures);
CurFPFeatures = NewFPFeatures.applyOverrides(getLangOpts());
}
@@ -1451,7 +1445,7 @@ void Sema::setExceptionMode(SourceLocation Loc,
LangOptions::FPExceptionModeKind FPE) {
FPOptionsOverride NewFPFeatures = CurFPFeatureOverrides();
NewFPFeatures.setSpecifiedExceptionModeOverride(FPE);
- FpPragmaStack.Act(Loc, PragmaMsStackAction::Set, StringRef(), NewFPFeatures);
+ FpPragmaStack.Act(Loc, PSK_Set, StringRef(), NewFPFeatures);
CurFPFeatures = NewFPFeatures.applyOverrides(getLangOpts());
}
@@ -1467,7 +1461,7 @@ void Sema::ActOnPragmaFEnvAccess(SourceLocation Loc, bool IsEnabled) {
}
NewFPFeatures.setAllowFEnvAccessOverride(IsEnabled);
NewFPFeatures.setRoundingMathOverride(IsEnabled);
- FpPragmaStack.Act(Loc, PragmaMsStackAction::Set, StringRef(), NewFPFeatures);
+ FpPragmaStack.Act(Loc, PSK_Set, StringRef(), NewFPFeatures);
CurFPFeatures = NewFPFeatures.applyOverrides(getLangOpts());
}
@@ -1475,7 +1469,7 @@ void Sema::ActOnPragmaCXLimitedRange(SourceLocation Loc,
LangOptions::ComplexRangeKind Range) {
FPOptionsOverride NewFPFeatures = CurFPFeatureOverrides();
NewFPFeatures.setComplexRangeOverride(Range);
- FpPragmaStack.Act(Loc, PragmaMsStackAction::Set, StringRef(), NewFPFeatures);
+ FpPragmaStack.Act(Loc, PSK_Set, StringRef(), NewFPFeatures);
CurFPFeatures = NewFPFeatures.applyOverrides(getLangOpts());
}
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp
index 5459b3aee958d..f13a173ec933e 100644
--- a/clang/lib/Serialization/ASTReader.cpp
+++ b/clang/lib/Serialization/ASTReader.cpp
@@ -2027,7 +2027,7 @@ Token ASTReader::ReadToken(ModuleFile &M, const RecordDataImpl &Record,
}
case tok::annot_pragma_pack: {
auto *Info = new (PP.getPreprocessorAllocator()) Sema::PragmaPackInfo;
- Info->Action = static_cast<PragmaMsStackAction>(Record[Idx++]);
+ Info->Action = static_cast<Sema::PragmaMsStackAction>(Record[Idx++]);
auto SlotLabel = ReadString(Record, Idx);
Info->SlotLabel =
llvm::StringRef(SlotLabel).copy(PP.getPreprocessorAllocator());
More information about the cfe-commits
mailing list