diff options
-rw-r--r-- | lib/Lex/PPDirectives.cpp | 2 | ||||
-rw-r--r-- | test/Preprocessor/traditional-cpp.c | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/lib/Lex/PPDirectives.cpp b/lib/Lex/PPDirectives.cpp index 54457c36cf..1044683212 100644 --- a/lib/Lex/PPDirectives.cpp +++ b/lib/Lex/PPDirectives.cpp @@ -258,7 +258,7 @@ void Preprocessor::SkipExcludedConditionalBlock(SourceLocation IfTokenLoc, // directive mode. Tell the lexer this so any newlines we see will be // converted into an EOD token (this terminates the macro). CurPPLexer->ParsingPreprocessorDirective = true; - if (CurLexer) CurLexer->SetCommentRetentionState(false); + if (CurLexer) CurLexer->SetKeepWhitespaceMode(false); // Read the next token, the directive flavor. diff --git a/test/Preprocessor/traditional-cpp.c b/test/Preprocessor/traditional-cpp.c index 72024546ff..5a94c00c96 100644 --- a/test/Preprocessor/traditional-cpp.c +++ b/test/Preprocessor/traditional-cpp.c @@ -62,3 +62,19 @@ bracket2(spaces) /* If this were working, this check would be on. * CHECK-NOT: {{^}}>>> spaces <<<{{$}} */ + + +/* Check that #if 0 blocks work as expected */ +#if 0 +#error "this is not an error" + +#if 1 +a b c in skipped block +#endif + +/* Comments are whitespace too */ + +#endif +/* CHECK-NOT: {{^}}a b c in skipped block{{$}} + * CHECK-NOT: {{^}}/* Comments are whitespace too + */ |