diff options
Diffstat (limited to 'lib/Frontend/PrintPreprocessedOutput.cpp')
| -rw-r--r-- | lib/Frontend/PrintPreprocessedOutput.cpp | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/Frontend/PrintPreprocessedOutput.cpp b/lib/Frontend/PrintPreprocessedOutput.cpp index 44e0e1390604..02afd24c246e 100644 --- a/lib/Frontend/PrintPreprocessedOutput.cpp +++ b/lib/Frontend/PrintPreprocessedOutput.cpp @@ -448,7 +448,8 @@ static int MacroIDCompare(const void* a, const void* b) {  static void DoPrintMacros(Preprocessor &PP, llvm::raw_ostream *OS) {    // -dM mode just scans and ignores all tokens in the files, then dumps out    // the macro table at the end. -  PP.EnterMainSourceFile(); +  if (PP.EnterMainSourceFile()) +    return;    Token Tok;    do PP.Lex(Tok); @@ -495,7 +496,8 @@ void clang::DoPrintPreprocessedInput(Preprocessor &PP, llvm::raw_ostream *OS,    PP.addPPCallbacks(Callbacks);    // After we have configured the preprocessor, enter the main file. -  PP.EnterMainSourceFile(); +  if (PP.EnterMainSourceFile()) +    return;    // Consume all of the tokens that come from the predefines buffer.  Those    // should not be emitted into the output and are guaranteed to be at the  | 
