https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66385
Thomas Koenig <tkoenig at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |36854 --- Comment #5 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- As I wrote in the other PR, BLOCKs created by front-end optimization and FORALL don't mix well. The solution is not to attempt that particular optimization within a FORALL. Index: frontend-passes.c =================================================================== --- frontend-passes.c (Revision 223876) +++ frontend-passes.c (Arbeitskopie) @@ -1243,6 +1243,10 @@ combine_array_constructor (gfc_expr *e) if (in_assoc_list) return false; + /* With FORALL, the BLOCKS created by create_var will cause an ICE. */ + if (forall_level > 0) + return false; + op1 = e->value.op.op1; op2 = e->value.op.op2; Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36854 [Bug 36854] [meta-bug] fortran front-end optimization