PR fortran/39292
* trans-array.c (gfc_conv_array_initializer): Convert all
expressions rather than ICEing.
2009-02-26 Paul Thomas <pault@gcc.gnu.org>
PR fortran/39292
* gfortran.dg/initialization_22.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144444
138bc75d-0d04-0410-961f-
82ee72b054a4
+2009-02-26 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/39292
+ * trans-array.c (gfc_conv_array_initializer): Convert all
+ expressions rather than ICEing.
+
2008-02-21 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/38914
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-02-26 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/39292
+ * gfortran.dg/initialization_22.f90: New test.
+
2008-02-25 H.J. Lu <hongjiu.lu@intel.com>
PR rtl-optimization/39241
--- /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