diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-09-08 17:18:41 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-09-08 17:18:41 +0000 |
commit | 80f78b961a2096ea4b2d3395abb3ff7259c1e612 (patch) | |
tree | 8973edb4a3d2896efb4138d442f4ddf108f1d2cb /clang/lib/Serialization/ASTReader.cpp | |
parent | 8b7d403684c89f3ef7fdf5c33f46d55918e0f85b (diff) | |
download | bcm5719-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.cpp | 13 |
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; } |