[Bug fortran/66385] [4.9/5/6 Regression] ICE: FORALL writing multiple elements of one array

tkoenig at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Jun 4 09:25:00 GMT 2015


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



More information about the Gcc-bugs mailing list