Clean up Fortran OpenACC wait clause handling
authorThomas Schwinge <thomas@codesourcery.com>
Fri, 30 Nov 2018 20:39:18 +0000 (21:39 +0100)
committerThomas Schwinge <tschwinge@gcc.gnu.org>
Fri, 30 Nov 2018 20:39:18 +0000 (21:39 +0100)
"wait" can be deduced from "wait_list".

gcc/fortran/
* gfortran.h (struct gfc_omp_clauses): Remove "wait".  Adjust all
users.

From-SVN: r266685

gcc/fortran/ChangeLog
gcc/fortran/gfortran.h
gcc/fortran/openmp.c

index 435ecf82f9706a007bc393ca90fafb13aecc952f..76bb0b9f5c0c090c40ced73ca3185d2d78365e8e 100644 (file)
@@ -1,5 +1,8 @@
 2018-11-30  Thomas Schwinge  <thomas@codesourcery.com>
 
+       * gfortran.h (struct gfc_omp_clauses): Remove "wait".  Adjust all
+       users.
+
        * openmp.c (gfc_match_omp_clauses): Support multiple OpenACC wait
        clauses.
 
index 4dd6298b3ddb55af80a1f5bffa0c23bb484fd14e..a14b4c44a18a5368c69e32e0ee6f6473d3d98c44 100644 (file)
@@ -1345,7 +1345,7 @@ typedef struct gfc_omp_clauses
   gfc_expr_list *wait_list;
   gfc_expr_list *tile_list;
   unsigned async:1, gang:1, worker:1, vector:1, seq:1, independent:1;
-  unsigned wait:1, par_auto:1, gang_static:1;
+  unsigned par_auto:1, gang_static:1;
   unsigned if_present:1, finalize:1;
   locus loc;
 
index e1560c1fe37297cf111627fbbdc81919a7e5dc91..fb9c073ff779cfaec028d6fbaf1daf546722886b 100644 (file)
@@ -1878,7 +1878,6 @@ gfc_match_omp_clauses (gfc_omp_clauses **cp, const omp_mask mask,
          if ((mask & OMP_CLAUSE_WAIT)
              && gfc_match ("wait") == MATCH_YES)
            {
-             c->wait = true;
              match m = match_oacc_expr_list (" (", &c->wait_list, false);
              if (m == MATCH_ERROR)
                {
@@ -4779,10 +4778,8 @@ resolve_omp_clauses (gfc_code *code, gfc_omp_clauses *omp_clauses,
     resolve_positive_int_expr (omp_clauses->worker_expr, "WORKER");
   if (omp_clauses->vector_expr)
     resolve_positive_int_expr (omp_clauses->vector_expr, "VECTOR");
-  if (omp_clauses->wait)
-    if (omp_clauses->wait_list)
-      for (el = omp_clauses->wait_list; el; el = el->next)
-       resolve_scalar_int_expr (el->expr, "WAIT");
+  for (el = omp_clauses->wait_list; el; el = el->next)
+    resolve_scalar_int_expr (el->expr, "WAIT");
   if (omp_clauses->collapse && omp_clauses->tile_list)
     gfc_error ("Incompatible use of TILE and COLLAPSE at %L", &code->loc);
   if (omp_clauses->depend_source && code->op != EXEC_OMP_ORDERED)