diff options
author | Douglas Gregor <dgregor@apple.com> | 2012-10-18 17:58:09 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2012-10-18 17:58:09 +0000 |
commit | ee097c1a3f5e02605dd585c0a9bf22976f09ccc2 (patch) | |
tree | a1815e179cd8e8d74f2285221b15c6aad8456ddf /lib/Serialization/ASTReader.cpp | |
parent | b1502bcd67fb593a95cbf73ec3814f4015666da0 (diff) |
Split the target options out into their own record within the AST
file's control block.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166195 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Serialization/ASTReader.cpp')
-rw-r--r-- | lib/Serialization/ASTReader.cpp | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp index 5d2e8d6cfc..3d6d31d20e 100644 --- a/lib/Serialization/ASTReader.cpp +++ b/lib/Serialization/ASTReader.cpp @@ -1800,24 +1800,6 @@ ASTReader::ASTReadResult ASTReader::ReadControlBlock(ModuleFile &F, } RelocatablePCH = Record[4]; - if (Listener && &F == *ModuleMgr.begin()) { - unsigned Idx = 6; - TargetOptions TargetOpts; - TargetOpts.Triple = ReadString(Record, Idx); - TargetOpts.CPU = ReadString(Record, Idx); - TargetOpts.ABI = ReadString(Record, Idx); - TargetOpts.CXXABI = ReadString(Record, Idx); - TargetOpts.LinkerVersion = ReadString(Record, Idx); - for (unsigned N = Record[Idx++]; N; --N) { - TargetOpts.FeaturesAsWritten.push_back(ReadString(Record, Idx)); - } - for (unsigned N = Record[Idx++]; N; --N) { - TargetOpts.Features.push_back(ReadString(Record, Idx)); - } - - if (Listener->ReadTargetOptions(F, TargetOpts)) - return IgnorePCH; - } break; } @@ -1849,6 +1831,28 @@ ASTReader::ASTReadResult ASTReader::ReadControlBlock(ModuleFile &F, return IgnorePCH; break; + case TARGET_OPTIONS: { + if (Listener && &F == *ModuleMgr.begin()) { + unsigned Idx = 0; + TargetOptions TargetOpts; + TargetOpts.Triple = ReadString(Record, Idx); + TargetOpts.CPU = ReadString(Record, Idx); + TargetOpts.ABI = ReadString(Record, Idx); + TargetOpts.CXXABI = ReadString(Record, Idx); + TargetOpts.LinkerVersion = ReadString(Record, Idx); + for (unsigned N = Record[Idx++]; N; --N) { + TargetOpts.FeaturesAsWritten.push_back(ReadString(Record, Idx)); + } + for (unsigned N = Record[Idx++]; N; --N) { + TargetOpts.Features.push_back(ReadString(Record, Idx)); + } + + if (Listener->ReadTargetOptions(F, TargetOpts)) + return IgnorePCH; + } + break; + } + case ORIGINAL_FILE_NAME: // Only record from the primary AST file. if (&F == *ModuleMgr.begin()) { |