------- Comment #10 from jvdelisle at gcc dot gnu dot org 2009-11-14 21:24
-------
Interesting, the following patch allows the test case in comment #4 to compile.
Index: data.c
===================================================================
--- data.c (revision 154170)
+++ data.c (working copy)
@@ -55,8 +55,8 @@ get_array_index (gfc_array_ref *ar, mpz_t *offset)
mpz_init_set_si (delta, 1);
for (i = 0; i < ar->dimen; i++)
{
+ re = gfc_simplify_expr (ar->start[i], 1);
e = gfc_copy_expr (ar->start[i]);
- re = gfc_simplify_expr (e, 1);
if ((gfc_is_constant_expr (ar->as->lower[i]) == 0)
|| (gfc_is_constant_expr (ar->as->upper[i]) == 0)
Simplifying the start expression before the copy rather than simplifying the
copy. I am not sure the resulting executable is correct though.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41807