OpenACC wait list diagnostic change
authorJulian Brown <jules@gcc.gnu.org>
Tue, 4 Dec 2018 12:35:06 +0000 (12:35 +0000)
committerJulian Brown <jules@gcc.gnu.org>
Tue, 4 Dec 2018 12:35:06 +0000 (12:35 +0000)
2018-12-04  James Norris  <jnorris@codesourcery.com>
    Cesar Philippidis  <cesar@codesourcery.com>
    Julian Brown  <julian@codesourcery.com>

gcc/c/
* c-parser.c (c_parser_oacc_wait_list): Remove dead diagnostic
code.

gcc/cp/
* parser.c (cp_parser_oacc_wait_list): Fix error message and avoid
duplicate diagnostic.

gcc/testsuite/
* c-c++-common/goacc/asyncwait-1: Update expected errors and add a
test for "wait (".

Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
Reviewed-by: Joseph Myers <joseph@codesourcery.com>
From-SVN: r266774

gcc/c/ChangeLog
gcc/c/c-parser.c
gcc/cp/ChangeLog
gcc/cp/parser.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/goacc/asyncwait-1.c

index 1f1b81fe7ba631f4a649b8f72f76dd0b46bb6977..6f0f67cc190128ec522efde9fcc9d58e368ba81b 100644 (file)
@@ -1,3 +1,10 @@
+2018-12-04  James Norris  <jnorris@codesourcery.com>
+           Cesar Philippidis  <cesar@codesourcery.com>
+           Julian Brown  <julian@codesourcery.com>
+
+       * c-parser.c (c_parser_oacc_wait_list): Remove dead diagnostic
+       code.
+
 2018-11-30  Richard Biener  <rguenther@suse.de>
 
        * gimple-parser.c (c_parser_gimple_postfix_expression): Parse
index afc40710e83a2aecd5a3323aa9d254ae843427f8..0d7fcc0f7228535978993d29d439f034478d325b 100644 (file)
@@ -11801,14 +11801,6 @@ c_parser_oacc_wait_list (c_parser *parser, location_t clause_loc, tree list)
     return list;
 
   args = c_parser_expr_list (parser, false, true, NULL, NULL, NULL, NULL);
-
-  if (args->length () == 0)
-    {
-      c_parser_error (parser, "expected integer expression before ')'");
-      release_tree_vector (args);
-      return list;
-    }
-
   args_tree = build_tree_list_vec (args);
 
   for (t = args_tree; t; t = TREE_CHAIN (t))
index 48f802b4221620397309b0f46941fa73ad2d7485..866fd33e6bd009af64a606681762a9a719bb1705 100644 (file)
@@ -1,3 +1,8 @@
+2018-12-04  Julian Brown  <julian@codesourcery.com>
+
+       * parser.c (cp_parser_oacc_wait_list): Fix error message and avoid
+       duplicate diagnostic.
+
 2018-12-04  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/88103
index ab6d2378622bee9060375fdebc591f6377a57b48..ac19cb4b9bb51bda0db332f7a16d6631e7b19589 100644 (file)
@@ -32605,9 +32605,11 @@ cp_parser_oacc_wait_list (cp_parser *parser, location_t clause_loc, tree list)
 
   if (args == NULL || args->length () == 0)
     {
-      cp_parser_error (parser, "expected integer expression before ')'");
       if (args != NULL)
-       release_tree_vector (args);
+       {
+         cp_parser_error (parser, "expected integer expression list");
+         release_tree_vector (args);
+       }
       return list;
     }
 
index 99a444397545a21ecb2ce4d7bb3a598b037bc8b7..2c7e3a9b6708e2f2ac39e24f03c5250fc0316bca 100644 (file)
@@ -1,3 +1,8 @@
+2018-12-04  Julian Brown  <julian@codesourcery.com>
+
+       * c-c++-common/goacc/asyncwait-1: Update expected errors and add a
+       test for "wait (".
+
 2018-12-04  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/88103
index e1840af5d70b902166e21a18be168bc031728210..2f5d4762b494c4e652905442b2d1f23514e9581b 100644 (file)
@@ -116,7 +116,6 @@ f (int N, float *a, float *b)
     }
 
 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (1 /* { dg-error "expected '\\\)' before end of line" } */
-    /* { dg-error "expected integer expression before '\\\)'" "" { target c++ } .-1 } */
     {
         for (ii = 0; ii < N; ii++)
             b[ii] = a[ii];
@@ -152,6 +151,12 @@ f (int N, float *a, float *b)
             b[ii] = a[ii];
     }
 
+#pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait ( /* { dg-error "expected (primary-|)expression before" } */
+    {
+        for (ii = 0; ii < N; ii++)
+            b[ii] = a[ii];
+    }
+
 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait
     {
         for (ii = 0; ii < N; ii++)
@@ -171,7 +176,6 @@ f (int N, float *a, float *b)
 #pragma acc wait (1,2,,) /* { dg-error "expected (primary-|)expression before" } */
 
 #pragma acc wait (1 /* { dg-error "expected '\\\)' before end of line" } */
-    /* { dg-error "expected integer expression before '\\\)'" "" { target c++ } .-1 } */
 
 #pragma acc wait (1,*) /* { dg-error "expected (primary-|)expression before" } */