diff --git a/clang/lib/Lex/PPDirectives.cpp b/clang/lib/Lex/PPDirectives.cpp index 8fe70668a406..87741b0a024a 100644 --- a/clang/lib/Lex/PPDirectives.cpp +++ b/clang/lib/Lex/PPDirectives.cpp @@ -587,7 +587,7 @@ void Preprocessor::SkipExcludedConditionalBlock(SourceLocation HashTokenLoc, // If this is a #else with a #else before it, report the error. if (CondInfo.FoundElse) - Diag(Tok, diag::pp_err_else_after_else) << PED_Elif; + Diag(Tok, diag::pp_err_else_after_else); // Note that we've seen a #else in this conditional. CondInfo.FoundElse = true; @@ -611,7 +611,8 @@ void Preprocessor::SkipExcludedConditionalBlock(SourceLocation HashTokenLoc, PPConditionalInfo &CondInfo = CurPPLexer->peekConditionalLevel(); // If this is a #elif with a #else before it, report the error. - if (CondInfo.FoundElse) Diag(Tok, diag::pp_err_elif_after_else); + if (CondInfo.FoundElse) + Diag(Tok, diag::pp_err_elif_after_else) << PED_Elif; // If this is in a skipping block or if we're already handled this #if // block, don't bother parsing the condition. diff --git a/clang/test/Preprocessor/elifdef.c b/clang/test/Preprocessor/elifdef.c index 3954159c5e08..6bc467d70011 100644 --- a/clang/test/Preprocessor/elifdef.c +++ b/clang/test/Preprocessor/elifdef.c @@ -105,3 +105,9 @@ #elifdef #elifndef #endif + +/* expected-error@+3 {{#elif after #else}}*/ +#if 1 +#else +#elif +#endif