summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-11-15 18:57:27 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-11-15 18:57:27 +0000
commit5259524b2fd1b6af3053a9bb7452d9af170c2633 (patch)
treed5d664a93ec70cff1f9113a663106a1cb341ef1b /clang/lib/Serialization
parent2ec293677806fddc4dffbc89e0f4faa5c49c2ddf (diff)
downloadbcm5719-llvm-5259524b2fd1b6af3053a9bb7452d9af170c2633.tar.gz
bcm5719-llvm-5259524b2fd1b6af3053a9bb7452d9af170c2633.zip
[modules] Use a memory buffer directly as input for the module includes,
instead of messing with virtual files. llvm-svn: 168062
Diffstat (limited to 'clang/lib/Serialization')
-rw-r--r--clang/lib/Serialization/ASTReader.cpp4
-rw-r--r--clang/lib/Serialization/ASTWriter.cpp5
2 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp
index cd15e212dd0..6e82cd9c762 100644
--- a/clang/lib/Serialization/ASTReader.cpp
+++ b/clang/lib/Serialization/ASTReader.cpp
@@ -1796,6 +1796,10 @@ ASTReader::ReadControlBlock(ModuleFile &F,
MaybeAddSystemRootToFilename(F, F.OriginalSourceFileName);
break;
+ case ORIGINAL_FILE_ID:
+ F.OriginalSourceFileID = FileID::get(Record[0]);
+ break;
+
case ORIGINAL_PCH_DIR:
F.OriginalDir.assign(BlobStart, BlobLen);
break;
diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp
index f06b428019c..744ae9fd81e 100644
--- a/clang/lib/Serialization/ASTWriter.cpp
+++ b/clang/lib/Serialization/ASTWriter.cpp
@@ -777,6 +777,7 @@ void ASTWriter::WriteBlockInfoBlock() {
RECORD(TARGET_OPTIONS);
RECORD(ORIGINAL_FILE);
RECORD(ORIGINAL_PCH_DIR);
+ RECORD(ORIGINAL_FILE_ID);
RECORD(INPUT_FILE_OFFSETS);
RECORD(DIAGNOSTIC_OPTIONS);
RECORD(FILE_SYSTEM_OPTIONS);
@@ -1180,6 +1181,10 @@ void ASTWriter::WriteControlBlock(Preprocessor &PP, ASTContext &Context,
Stream.EmitRecordWithBlob(FileAbbrevCode, Record, MainFileNameStr);
}
+ Record.clear();
+ Record.push_back(SM.getMainFileID().getOpaqueValue());
+ Stream.EmitRecord(ORIGINAL_FILE_ID, Record);
+
// Original PCH directory
if (!OutputFile.empty() && OutputFile != "-") {
BitCodeAbbrev *Abbrev = new BitCodeAbbrev();
OpenPOWER on IntegriCloud