[Bug fortran/24978] ICE in gfc_assign_data_value_range
jvdelisle at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sat Dec 5 17:01:00 GMT 2009
------- Comment #19 from jvdelisle at gcc dot gnu dot org 2009-12-05 17:01 -------
Try this patch:
Index: data.c
===================================================================
--- data.c (revision 155006)
+++ data.c (working copy)
@@ -497,7 +497,13 @@ gfc_assign_data_value_range (gfc_expr *lvalue, gfc
expr->expr_type = EXPR_ARRAY;
expr->rank = ref->u.ar.as->rank;
}
- else
+ else if (expr->expr_type != EXPR_ARRAY)
+ {
+ gfc_error ("Duplicate initialization at %L",
+ &expr->where);;
+ return;
+ }
+
gcc_assert (expr->expr_type == EXPR_ARRAY);
if (ref->u.ar.type == AR_ELEMENT)
@@ -558,8 +564,12 @@ gfc_assign_data_value_range (gfc_expr *lvalue, gfc
pred->next = con;
}
}
- else
- gcc_assert (ref->next != NULL);
+ else if (ref->next == NULL)
+ {
+ gfc_error ("Duplicate initialization at %L",
+ &rvalue->where);;
+ return;
+ }
break;
case REF_COMPONENT:
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24978
More information about the Gcc-bugs
mailing list