summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2014-03-05 06:53:13 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2014-03-05 06:53:13 +0000
commit18a3764b4fbec2b1ab49649e8c6f6fd8ceb2ba03 (patch)
tree4c11899ef863f75426b5dbbc694c1ef3940b2ac6
parent0692508670d9fe12c2ce5adaee1254b06a1a58d2 (diff)
downloadbcm5719-llvm-18a3764b4fbec2b1ab49649e8c6f6fd8ceb2ba03.tar.gz
bcm5719-llvm-18a3764b4fbec2b1ab49649e8c6f6fd8ceb2ba03.zip
[OPENMP] emit error message for clause 'if(1 0)'
llvm-svn: 202942
-rw-r--r--clang/lib/Parse/ParseOpenMP.cpp4
-rw-r--r--clang/test/OpenMP/parallel_if_messages.cpp3
2 files changed, 3 insertions, 4 deletions
diff --git a/clang/lib/Parse/ParseOpenMP.cpp b/clang/lib/Parse/ParseOpenMP.cpp
index 3a8f2ee8809..df8f17bd13d 100644
--- a/clang/lib/Parse/ParseOpenMP.cpp
+++ b/clang/lib/Parse/ParseOpenMP.cpp
@@ -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();
diff --git a/clang/test/OpenMP/parallel_if_messages.cpp b/clang/test/OpenMP/parallel_if_messages.cpp
index eb4180d7f54..97096dfae3e 100644
--- a/clang/test/OpenMP/parallel_if_messages.cpp
+++ b/clang/test/OpenMP/parallel_if_messages.cpp
@@ -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();
OpenPOWER on IntegriCloud