aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCesar Philippidis <cesar@codesourcery.com>2016-03-09 19:39:53 +0000
committerCesar Philippidis <cesar@codesourcery.com>2016-03-09 19:39:53 +0000
commit73adb00eeb0b69594d476c428a95d048522145c5 (patch)
treeccc7619d9392dfaf09b4bdb7251168bd03b5cd80
parent32dc02dd3c490c9844be9f32403be48404901e79 (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/ChangeLog5
-rw-r--r--gcc/c/c-parser.c4
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/parser.c4
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/c-c++-common/goacc/combined-directives-2.c14
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;
+}