diff options
author | Nico Weber <nicolasweber@gmx.de> | 2016-03-03 00:17:35 +0000 |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2016-03-03 00:17:35 +0000 |
commit | 4293231e50ffb7bb85d75464c52dada8204ebc79 (patch) | |
tree | 80d03d8abb70052b77044d1463d8ab170468c576 /clang/lib/Serialization/ASTReader.cpp | |
parent | 3b5a8f5ffc83a92fe865e53f7b7af8f0be635bd8 (diff) | |
download | bcm5719-llvm-4293231e50ffb7bb85d75464c52dada8204ebc79.tar.gz bcm5719-llvm-4293231e50ffb7bb85d75464c52dada8204ebc79.zip |
Serialize `pragma pointers_to_members` state.
Like r262539, but for pointers_to_members.
llvm-svn: 262552
Diffstat (limited to 'clang/lib/Serialization/ASTReader.cpp')
-rw-r--r-- | clang/lib/Serialization/ASTReader.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index 57dc611c7e0..f730d6f4f20 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -3225,6 +3225,15 @@ ASTReader::ReadASTBlock(ModuleFile &F, unsigned ClientLoadCapabilities) { PragmaMSStructState = Record[0]; break; + case POINTERS_TO_MEMBERS_PRAGMA_OPTIONS: + if (Record.size() != 2) { + Error("invalid pragma ms_struct record"); + return Failure; + } + PragmaMSPointersToMembersState = Record[0]; + PointersToMembersPragmaLocation = ReadSourceLocation(F, Record[1]); + break; + case UNUSED_LOCAL_TYPEDEF_NAME_CANDIDATES: for (unsigned I = 0, N = Record.size(); I != N; ++I) UnusedLocalTypedefNameCandidates.push_back( @@ -7012,6 +7021,12 @@ void ASTReader::UpdateSema() { SemaObj->ActOnPragmaOptimize(/* IsOn = */ false, OptimizeOffPragmaLocation); if (PragmaMSStructState != -1) SemaObj->ActOnPragmaMSStruct((PragmaMSStructKind)PragmaMSStructState); + if (PointersToMembersPragmaLocation.isValid()) { + SemaObj->ActOnPragmaMSPointersToMembers( + (LangOptions::PragmaMSPointersToMembersKind) + PragmaMSPointersToMembersState, + PointersToMembersPragmaLocation); + } } IdentifierInfo *ASTReader::get(StringRef Name) { @@ -8707,6 +8722,7 @@ ASTReader::ASTReader( Consumer(nullptr), ModuleMgr(PP.getFileManager(), PCHContainerRdr), ReadTimer(std::move(ReadTimer)), PragmaMSStructState(-1), + PragmaMSPointersToMembersState(-1), isysroot(isysroot), DisableValidation(DisableValidation), AllowASTWithCompilerErrors(AllowASTWithCompilerErrors), AllowConfigurationMismatch(AllowConfigurationMismatch), |