From 80f78b961a2096ea4b2d3395abb3ff7259c1e612 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Thu, 8 Sep 2011 17:18:41 +0000 Subject: [libclang] Fix annotation and getting a "macro expansion" cursor for a builtin macro expansion. llvm-svn: 139298 --- clang/lib/Serialization/ASTReader.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'clang/lib/Serialization/ASTReader.cpp') 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; } -- cgit v1.2.3