summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization/ASTReader.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-01-05 21:36:25 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-01-05 21:36:25 +0000
commit9afd449e8ff4382d9479cfbc7acc38d74fbcfc76 (patch)
tree0330af5b9aa30c4be2765f8144af26ae77f17a0f /clang/lib/Serialization/ASTReader.cpp
parent7e325789af12aa3b933b7f7b1176805b4e1997de (diff)
downloadbcm5719-llvm-9afd449e8ff4382d9479cfbc7acc38d74fbcfc76.tar.gz
bcm5719-llvm-9afd449e8ff4382d9479cfbc7acc38d74fbcfc76.zip
When loading an AST file, set SourceManager::MainFileID to the main file of the AST file,
as suggested by Tom Honermann. llvm-svn: 147612
Diffstat (limited to 'clang/lib/Serialization/ASTReader.cpp')
-rw-r--r--clang/lib/Serialization/ASTReader.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp
index c29033e833c..a7d143b030f 100644
--- a/clang/lib/Serialization/ASTReader.cpp
+++ b/clang/lib/Serialization/ASTReader.cpp
@@ -2656,14 +2656,17 @@ ASTReader::ASTReadResult ASTReader::ReadAST(const std::string &FileName,
if (DeserializationListener)
DeserializationListener->ReaderInitialized(this);
- // If this AST file is a precompiled preamble, then set the preamble file ID
- // of the source manager to the file source file from which the preamble was
- // built.
- if (Type == MK_Preamble) {
- if (!OriginalFileID.isInvalid()) {
- OriginalFileID = FileID::get(ModuleMgr.getPrimaryModule().SLocEntryBaseID
- + OriginalFileID.getOpaqueValue() - 1);
+ if (!OriginalFileID.isInvalid()) {
+ OriginalFileID = FileID::get(ModuleMgr.getPrimaryModule().SLocEntryBaseID
+ + OriginalFileID.getOpaqueValue() - 1);
+
+ // If this AST file is a precompiled preamble, then set the preamble file ID
+ // of the source manager to the file source file from which the preamble was
+ // built.
+ if (Type == MK_Preamble) {
SourceMgr.setPreambleFileID(OriginalFileID);
+ } else if (Type == MK_MainFile) {
+ SourceMgr.setMainFileID(OriginalFileID);
}
}
OpenPOWER on IntegriCloud