diff options
Diffstat (limited to 'clang/lib/Parse/ParsePragma.cpp')
-rw-r--r-- | clang/lib/Parse/ParsePragma.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/clang/lib/Parse/ParsePragma.cpp b/clang/lib/Parse/ParsePragma.cpp index c7a344f59da..2b248cc10fb 100644 --- a/clang/lib/Parse/ParsePragma.cpp +++ b/clang/lib/Parse/ParsePragma.cpp @@ -1710,9 +1710,13 @@ void PragmaLoopHintHandler::HandlePragma(Preprocessor &PP, // FIXME: All tokens between '(' and ')' should be stored and parsed as a // constant expression. PP.Lex(Tok); - Token Value; - if (Tok.is(tok::identifier) || Tok.is(tok::numeric_constant)) - Value = Tok; + if (Tok.is(tok::r_paren)) { + // Nothing between the parentheses. + PP.Diag(Tok.getLocation(), diag::err_pragma_loop_missing_argument) + << OptionInfo; + return; + } + Token Value = Tok; // Read ')' PP.Lex(Tok); |