]> granicus.if.org Git - clang/commitdiff
[OPENMP] emit error message for clause 'if(1 0)'
authorAlexey Bataev <a.bataev@hotmail.com>
Wed, 5 Mar 2014 06:53:13 +0000 (06:53 +0000)
committerAlexey Bataev <a.bataev@hotmail.com>
Wed, 5 Mar 2014 06:53:13 +0000 (06:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202942 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Parse/ParseOpenMP.cpp
test/OpenMP/parallel_if_messages.cpp

index 3a8f2ee880939d25faf435b3b59918980f64b152..df8f17bd13d009ebe96cc075f5f80571cfaea7db 100644 (file)
@@ -330,10 +330,6 @@ OMPClause *Parser::ParseOpenMPSingleExprClause(OpenMPClauseKind Kind) {
   ExprResult LHS(ParseCastExpression(false, false, NotTypeCast));
   ExprResult Val(ParseRHSOfBinaryExpression(LHS, prec::Conditional));
 
-  if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::comma) &&
-      Tok.isNot(tok::annot_pragma_openmp_end))
-    ConsumeAnyToken();
-
   // Parse ')'.
   T.consumeClose();
 
index eb4180d7f545b942ad1ac4a807e8dfe2910ffed4..97096dfae3e8919abb95d8ded861c378f272bf63 100644 (file)
@@ -20,6 +20,7 @@ int tmain(T argc, S **argv) {
   #pragma omp parallel if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp parallel' cannot contain more than one 'if' clause}}
   #pragma omp parallel if (S) // expected-error {{'S' does not refer to a value}}
   #pragma omp parallel if (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
+  #pragma omp parallel if (argc argc) // expected-error {{expected ')'}} expected-note {{to match this '('}}
   #pragma omp parallel if(argc)
   foo();
 
@@ -36,6 +37,8 @@ int main(int argc, char **argv) {
   #pragma omp parallel if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp parallel' cannot contain more than one 'if' clause}}
   #pragma omp parallel if (S1) // expected-error {{'S1' does not refer to a value}}
   #pragma omp parallel if (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}
+  #pragma omp parallel if (argc argc) // expected-error {{expected ')'}} expected-note {{to match this '('}}
+  #pragma omp parallel if (1 0) // expected-error {{expected ')'}} expected-note {{to match this '('}}
   #pragma omp parallel if(if(tmain(argc, argv) // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
   foo();