]> granicus.if.org Git - clang/commitdiff
[PCH] When writing out ExpansionInfo, make sure we don't lose track if it's a macro...
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Wed, 17 Aug 2011 00:31:14 +0000 (00:31 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Wed, 17 Aug 2011 00:31:14 +0000 (00:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137792 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Serialization/ASTWriter.cpp

index 3af8fd7b939ba2e5b7345ec74531cbc38b729184..0a914fa1d6af5468ea242126a52a8c706610aca6 100644 (file)
@@ -1540,7 +1540,8 @@ void ASTWriter::WriteSourceManagerBlock(SourceManager &SourceMgr,
       const SrcMgr::ExpansionInfo &Expansion = SLoc->getExpansion();
       Record.push_back(Expansion.getSpellingLoc().getRawEncoding());
       Record.push_back(Expansion.getExpansionLocStart().getRawEncoding());
-      Record.push_back(Expansion.getExpansionLocEnd().getRawEncoding());
+      Record.push_back(Expansion.isMacroArgExpansion() ? 0
+                             : Expansion.getExpansionLocEnd().getRawEncoding());
 
       // Compute the token length for this macro expansion.
       unsigned NextOffset = SourceMgr.getNextLocalOffset();