[Bug fortran/56765] [OOP] compilation errors/ICE with unlimited polymorphic array
janus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Mar 29 21:30:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56765
--- Comment #3 from janus at gcc dot gnu.org 2013-03-29 21:30:03 UTC ---
With this patch ...
Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c (revision 196862)
+++ gcc/fortran/resolve.c (working copy)
@@ -2538,7 +2538,9 @@ found:
expr->ts = sym->ts;
expr->value.function.name = sym->name;
expr->value.function.esym = sym;
- if (sym->as != NULL)
+ if (sym->result->ts.type == BT_CLASS && CLASS_DATA (sym->result)->as)
+ expr->rank = CLASS_DATA (sym->result)->as->rank;
+ else if (sym->as != NULL)
expr->rank = sym->as->rank;
return MATCH_YES;
... the behavior of the two test cases is swapped: The second one is
(correctly) rejected, while the first one ends up with the ICE.
More information about the Gcc-bugs
mailing list