summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization/ASTReader.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-09-08 17:18:41 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-09-08 17:18:41 +0000
commit80f78b961a2096ea4b2d3395abb3ff7259c1e612 (patch)
tree8973edb4a3d2896efb4138d442f4ddf108f1d2cb /clang/lib/Serialization/ASTReader.cpp
parent8b7d403684c89f3ef7fdf5c33f46d55918e0f85b (diff)
downloadbcm5719-llvm-80f78b961a2096ea4b2d3395abb3ff7259c1e612.tar.gz
bcm5719-llvm-80f78b961a2096ea4b2d3395abb3ff7259c1e612.zip
[libclang] Fix annotation and getting a "macro expansion" cursor
for a builtin macro expansion. llvm-svn: 139298
Diffstat (limited to 'clang/lib/Serialization/ASTReader.cpp')
-rw-r--r--clang/lib/Serialization/ASTReader.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp
index 251d0f6e317..e574e25f5b9 100644
--- a/clang/lib/Serialization/ASTReader.cpp
+++ b/clang/lib/Serialization/ASTReader.cpp
@@ -1448,11 +1448,16 @@ PreprocessedEntity *ASTReader::LoadPreprocessedEntity(Module &F) {
if (PreprocessedEntity *PE = PPRec.getLoadedPreprocessedEntity(GlobalID-1))
return PE;
- MacroExpansion *ME =
- new (PPRec) MacroExpansion(getLocalIdentifier(F, Record[3]),
+ bool isBuiltin = Record[3];
+ MacroExpansion *ME;
+ if (isBuiltin)
+ ME = new (PPRec) MacroExpansion(getLocalIdentifier(F, Record[4]),
SourceRange(ReadSourceLocation(F, Record[1]),
- ReadSourceLocation(F, Record[2])),
- getLocalMacroDefinition(F, Record[4]));
+ ReadSourceLocation(F, Record[2])));
+ else
+ ME = new (PPRec) MacroExpansion(getLocalMacroDefinition(F, Record[4]),
+ SourceRange(ReadSourceLocation(F, Record[1]),
+ ReadSourceLocation(F, Record[2])));
PPRec.setLoadedPreallocatedEntity(GlobalID - 1, ME);
return ME;
}
OpenPOWER on IntegriCloud