diff options
author | Cesar Philippidis <cesar@codesourcery.com> | 2016-03-09 19:39:53 +0000 |
---|---|---|
committer | Cesar Philippidis <cesar@codesourcery.com> | 2016-03-09 19:39:53 +0000 |
commit | 73adb00eeb0b69594d476c428a95d048522145c5 (patch) | |
tree | ccc7619d9392dfaf09b4bdb7251168bd03b5cd80 | |
parent | 32dc02dd3c490c9844be9f32403be48404901e79 (diff) |
gcc/c/
* c-parser.c (c_parser_oacc_loop): Update cclauses and clauses
when calling c_finish_omp_clauses.
gcc/cp/
* parser.c (cp_parser_oacc_loop): Update cclauses and clauses
when calling c_finish_omp_clauses.
gcc/testsuite/
* c-c++-common/goacc/combined-directives-2.c: New test.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@234089 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/c/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/c/c-parser.c | 4 | ||||
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/parser.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/goacc/combined-directives-2.c | 14 |
6 files changed, 32 insertions, 4 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index 2e54e5657e4..95fde9fb057 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,8 @@ +2016-03-09 Cesar Philippidis <cesar@codesourcery.com> + + * c-parser.c (c_parser_oacc_loop): Update cclauses and clauses + when calling c_finish_omp_clauses. + 2016-03-04 Bernd Schmidt <bschmidt@redhat.com> PR c/69824 diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c index a7d58270eae..60ec996bf70 100644 --- a/gcc/c/c-parser.c +++ b/gcc/c/c-parser.c @@ -13789,9 +13789,9 @@ c_parser_oacc_loop (location_t loc, c_parser *parser, char *p_name, { clauses = c_oacc_split_loop_clauses (clauses, cclauses); if (*cclauses) - c_finish_omp_clauses (*cclauses, false); + *cclauses = c_finish_omp_clauses (*cclauses, false); if (clauses) - c_finish_omp_clauses (clauses, false); + clauses = c_finish_omp_clauses (clauses, false); } tree block = c_begin_compound_stmt (true); diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 4bb43db6bf1..b4b9b24c87b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2016-03-09 Cesar Philippidis <cesar@codesourcery.com> + + * parser.c (cp_parser_oacc_loop): Update cclauses and clauses + when calling c_finish_omp_clauses. + 2016-03-08 Jason Merrill <jason@redhat.com> * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 726d5fc6a82..6ae45b0ca1a 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -35346,9 +35346,9 @@ cp_parser_oacc_loop (cp_parser *parser, cp_token *pragma_tok, char *p_name, { clauses = c_oacc_split_loop_clauses (clauses, cclauses); if (*cclauses) - finish_omp_clauses (*cclauses, false); + *cclauses = finish_omp_clauses (*cclauses, false); if (clauses) - finish_omp_clauses (clauses, false); + clauses = finish_omp_clauses (clauses, false); } tree block = begin_omp_structured_block (); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 14a2f67c2fa..31dd65e20b7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2016-03-09 Cesar Philippidis <cesar@codesourcery.com> + + * c-c++-common/goacc/combined-directives-2.c: New test. + 2016-03-09 David Malcolm <dmalcolm@redhat.com> PR c/68473 diff --git a/gcc/testsuite/c-c++-common/goacc/combined-directives-2.c b/gcc/testsuite/c-c++-common/goacc/combined-directives-2.c new file mode 100644 index 00000000000..c51e2f9c75b --- /dev/null +++ b/gcc/testsuite/c-c++-common/goacc/combined-directives-2.c @@ -0,0 +1,14 @@ +/* Ensure that bogus clauses aren't propagated in combined loop + constructs. */ + +int +main () +{ + int a, i; + +#pragma acc parallel loop vector copy(a[0:100]) reduction(+:a) /* { dg-error "'a' does not have pointer or array type" } */ + for (i = 0; i < 100; i++) + a++; + + return a; +} |