[Bug fortran/51754] [OOP] ICE on valid with class arrays

mikael at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Jan 29 15:55:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51754

--- Comment #8 from Mikael Morin <mikael at gcc dot gnu.org> 2012-01-29 14:51:48 UTC ---
Created attachment 26504
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26504
This fixes the ice-on-valid of comment #0

This patch (extracted from PR50981 comment #28) fixes the ICEs of:
PR51754 comment #0
PR46356 comment #2
PR41587 comment #1

It regresses in class_41.f03 because of the interface mapping mechanism for
character length.  There is a type mismatch between the dummy argument (of a
base type) and the corresponding actual argument (of an extended type).  The
shadow symbol created for interface mapping has the base type, but its backend
decl has the extended type.  It works without the patch because the missing
"_data" reference is implicitly added by conv_parent_component_references (and
it is the "_data" component of the extended type).  It fails with the patch
because the "_data" component is added explicitly, but as we are working with
the frontend structures we add the "_data" component of the base type.  When
translating with the extended type declaration we don't find the right
component and fail because of the type mismatch.



More information about the Gcc-bugs mailing list