+2009-03-07 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/39292
+ * trans-array.c (gfc_conv_array_initializer): Convert all
+ expressions rather than ICEing.
+
2009-02-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38852
CONSTRUCTOR_APPEND_ELT (v, index, se.expr);
break;
+
default:
- gcc_unreachable ();
+ /* Catch those occasional beasts that do not simplify
+ for one reason or another, assuming that if they are
+ standard defying the frontend will catch them. */
+ gfc_conv_expr (&se, c->expr);
+ if (range == NULL_TREE)
+ CONSTRUCTOR_APPEND_ELT (v, index, se.expr);
+ else
+ {
+ if (index != NULL_TREE)
+ CONSTRUCTOR_APPEND_ELT (v, index, se.expr);
+ CONSTRUCTOR_APPEND_ELT (v, range, se.expr);
+ }
+ break;
}
}
break;
+2009-03-07 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/39292
+ * gfortran.dg/initialization_22.f90: New test.
+
2009-03-04 Jason Merrill <jason@redhat.com>
Giovanni Bajo <giovannibajo@gcc.gnu.org>
--- /dev/null
+! { dg-do run }
+! tests the fix for PR39292, where the intitialization expression
+! did not simplify and caused an ICE in gfc_conv_array_initializer.
+!
+! Contributed by Richard Guenther <rguenth@gcc.gnu.org>
+!
+ integer :: n
+ real, dimension(2) :: a = (/ ( (float(n))**(1.0), n=1,2) /)
+ if (any (a .ne. (/ ( (float(n))**(1.0), n=1,2) /))) call abort
+end