From 72cad68b302d113d739566112c960e6ff60d1b96 Mon Sep 17 00:00:00 2001 From: Lubos Lunak Date: Thu, 1 May 2014 21:10:08 +0000 Subject: do not use "1" for line marker for the predefines "file" either Similar to r207764. llvm-svn: 207794 --- clang/lib/Rewrite/Frontend/InclusionRewriter.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'clang/lib/Rewrite/Frontend/InclusionRewriter.cpp') diff --git a/clang/lib/Rewrite/Frontend/InclusionRewriter.cpp b/clang/lib/Rewrite/Frontend/InclusionRewriter.cpp index ad8328e7ca1..d6a434d80ad 100644 --- a/clang/lib/Rewrite/Frontend/InclusionRewriter.cpp +++ b/clang/lib/Rewrite/Frontend/InclusionRewriter.cpp @@ -250,6 +250,10 @@ void InclusionRewriter::CommentOutDirective(Lexer &DirectiveLex, do { DirectiveLex.LexFromRawLexer(DirectiveToken); } while (!DirectiveToken.is(tok::eod) && DirectiveToken.isNot(tok::eof)); + if (&FromFile == PredefinesBuffer) { + // OutputContentUpTo() would not output anything anyway. + return; + } OS << "#if 0 /* expanded by -frewrite-includes */" << EOL; OutputContentUpTo(FromFile, NextToWrite, SM.getFileOffset(DirectiveToken.getLocation()) + DirectiveToken.getLength(), @@ -353,7 +357,7 @@ bool InclusionRewriter::Process(FileID FileId, StringRef EOL = DetectEOL(FromFile); // Per the GNU docs: "1" indicates entering a new file. - if (FileId == SM.getMainFileID()) + if (FileId == SM.getMainFileID() || FileId == PP.getPredefinesFileID()) WriteLineInfo(FileName, 1, FileType, EOL, ""); else WriteLineInfo(FileName, 1, FileType, EOL, " 1"); -- cgit v1.2.3