[PATCH] emit error message for clause 'if(1 0)'
Alexander Musman
alexander.musman at gmail.com
Thu Feb 20 22:57:13 PST 2014
Hi ABataev, doug.gregor, gribozavr, hfinkel, rengolin, fraggamuffin, cbergstrom,
This is a small fix for clause ‘if’.
E.g. having clause 'if(1 0)' should lead to error message.
http://llvm-reviews.chandlerc.com/D2854
Files:
test/OpenMP/parallel_if_messages.cpp
lib/Parse/ParseOpenMP.cpp
Index: test/OpenMP/parallel_if_messages.cpp
===================================================================
--- test/OpenMP/parallel_if_messages.cpp
+++ test/OpenMP/parallel_if_messages.cpp
@@ -20,6 +20,7 @@
#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 @@
#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();
Index: lib/Parse/ParseOpenMP.cpp
===================================================================
--- lib/Parse/ParseOpenMP.cpp
+++ lib/Parse/ParseOpenMP.cpp
@@ -328,10 +328,6 @@
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();
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D2854.1.patch
Type: text/x-patch
Size: 1952 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140220/1db142c1/attachment.bin>
More information about the cfe-commits
mailing list