http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60127

Thomas Koenig <tkoenig at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tkoenig at gcc dot gnu.org

--- Comment #2 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
This patchlet

Index: openmp.c
===================================================================
--- openmp.c    (Revision 208592)
+++ openmp.c    (Arbeitskopie)
@@ -1657,7 +1657,7 @@ resolve_omp_do (gfc_code *code)
                     "at %L", &do_code->loc);
          break;
        }
-      gcc_assert (do_code->op == EXEC_DO);
+      gcc_assert (do_code->op == EXEC_DO || do_code->op ==
EXEC_DO_CONCURRENT);
       if (do_code->ext.iterator->var->ts.type != BT_INTEGER)
        gfc_error ("!$OMP DO iteration variable must be of type integer at %L",
                   &do_code->loc);
Index: trans-openmp.c
===================================================================
--- trans-openmp.c      (Revision 208592)
+++ trans-openmp.c      (Arbeitskopie)
@@ -1322,7 +1322,7 @@ gfc_trans_omp_do (gfc_code *code, stmtblock_t *pbl
     collapse = 1;

   code = code->block->next;
-  gcc_assert (code->op == EXEC_DO);
+  gcc_assert (code->op == EXEC_DO || code->op == EXEC_DO_CONCURRENT);

   init = make_tree_vec (collapse);
   cond = make_tree_vec (collapse);

seems to fix things, without testsuite regressions, and simple code
also seems to run OK.

Am I overlooking something basic here?

Reply via email to