diff options
Diffstat (limited to 'clang/Lex/Preprocessor.cpp')
| -rw-r--r-- | clang/Lex/Preprocessor.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/clang/Lex/Preprocessor.cpp b/clang/Lex/Preprocessor.cpp index 1eff973a070..bfd270b168b 100644 --- a/clang/Lex/Preprocessor.cpp +++ b/clang/Lex/Preprocessor.cpp @@ -1409,11 +1409,10 @@ void Preprocessor::HandleDirective(LexerToken &Result) { case tok::eom: return; // null directive. -#if 0 case tok::numeric_constant: // FIXME: implement # 7 line numbers! - break; -#endif + DiscardUntilEndOfDirective(); + return; case tok::kw_else: return HandleElseDirective(Result); case tok::kw_if: @@ -1424,8 +1423,11 @@ void Preprocessor::HandleDirective(LexerToken &Result) { bool isExtension = false; switch (Result.getIdentifierInfo()->getNameLength()) { case 4: - if (Directive[0] == 'l' && !strcmp(Directive, "line")) - ; // FIXME: implement #line + if (Directive[0] == 'l' && !strcmp(Directive, "line")) { + // FIXME: implement #line + DiscardUntilEndOfDirective(); + return; + } if (Directive[0] == 'e' && !strcmp(Directive, "elif")) return HandleElifDirective(Result); if (Directive[0] == 's' && !strcmp(Directive, "sccs")) |

