diff options
author | Nico Weber <nicolasweber@gmx.de> | 2016-03-02 23:22:00 +0000 |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2016-03-02 23:22:00 +0000 |
commit | 779355f96bd5e6bff40bae824f3f13ccbb30d018 (patch) | |
tree | f8303aa2cdd6b397592c67d67b5244ce181a9628 /clang/lib/Parse/ParsePragma.cpp | |
parent | 8226fc482999342e899db0d046ad044ba2ada136 (diff) | |
download | bcm5719-llvm-779355f96bd5e6bff40bae824f3f13ccbb30d018.tar.gz bcm5719-llvm-779355f96bd5e6bff40bae824f3f13ccbb30d018.zip |
Serialize `pragma ms_struct` state.
pragma ms_struct has an effect on struct decls, and the effect is serialized
correctly already. But the "is ms_struct currently on" state wasn't before
this change.
This uses the same approach as `pragma clang optimize`: When writing a module,
the state isn't serialized, only when writing a pch file.
llvm-svn: 262539
Diffstat (limited to 'clang/lib/Parse/ParsePragma.cpp')
-rw-r--r-- | clang/lib/Parse/ParsePragma.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/clang/lib/Parse/ParsePragma.cpp b/clang/lib/Parse/ParsePragma.cpp index a7ea206d09b..09c5d49a6ae 100644 --- a/clang/lib/Parse/ParsePragma.cpp +++ b/clang/lib/Parse/ParsePragma.cpp @@ -362,9 +362,8 @@ void Parser::HandlePragmaPack() { void Parser::HandlePragmaMSStruct() { assert(Tok.is(tok::annot_pragma_msstruct)); - Sema::PragmaMSStructKind Kind = - static_cast<Sema::PragmaMSStructKind>( - reinterpret_cast<uintptr_t>(Tok.getAnnotationValue())); + PragmaMSStructKind Kind = static_cast<PragmaMSStructKind>( + reinterpret_cast<uintptr_t>(Tok.getAnnotationValue())); Actions.ActOnPragmaMSStruct(Kind); ConsumeToken(); // The annotation token. } @@ -1063,8 +1062,8 @@ void PragmaPackHandler::HandlePragma(Preprocessor &PP, void PragmaMSStructHandler::HandlePragma(Preprocessor &PP, PragmaIntroducerKind Introducer, Token &MSStructTok) { - Sema::PragmaMSStructKind Kind = Sema::PMSST_OFF; - + PragmaMSStructKind Kind = PMSST_OFF; + Token Tok; PP.Lex(Tok); if (Tok.isNot(tok::identifier)) { @@ -1074,7 +1073,7 @@ void PragmaMSStructHandler::HandlePragma(Preprocessor &PP, SourceLocation EndLoc = Tok.getLocation(); const IdentifierInfo *II = Tok.getIdentifierInfo(); if (II->isStr("on")) { - Kind = Sema::PMSST_ON; + Kind = PMSST_ON; PP.Lex(Tok); } else if (II->isStr("off") || II->isStr("reset")) |