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?