[Bug fortran/59198] [4.7/4.8/4.9 Regression] ICE on cyclically dependent polymorphic types

paul.richard.thomas at gmail dot com gcc-bugzilla@gcc.gnu.org
Mon Feb 24 09:20:00 GMT 2014


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

--- Comment #10 from paul.richard.thomas at gmail dot com <paul.richard.thomas at gmail dot com> ---
A further small remark, when the explicit interface for obs1_int is
turned to a subroutine, everything works perfectly.  I am homing in on
this as being the source of the trouble; I suspect that the function
pointer is not receiving the DEC_SIZE information.  I will look
tonight.

On 23 February 2014 21:49, pault at gcc dot gnu.org
<gcc-bugzilla@gcc.gnu.org> wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59198
>
> --- Comment #9 from Paul Thomas <pault at gcc dot gnu.org> ---
> Hi Tobias,
>
> I need to walk away from this one for 24 hours.
>
> I have established this chain:
> (i) We start building decay_t;
> (ii) During which we have to build decay_gen_t (from trans-types.c:2456);
> (iii) Followed by decay_term_t;
> (iv) Which has a decay_t as its only component;
> (v) Since this is in the process of being built, what is retruned is the
> backend_decl without any of the fields.  Thus the size cannot be determined;
> (vi) For reasons that I cannot see, since this component is a pointer,
> indeterminate size this propagates back to the size of the decay_gen_t
> component in decay_t; and
> (vii) This I suppose but have not confirmed, clobbers the initialisation of the
> vtable.
>
> This latter is surmise, on the basis that changing the 'term' field to a
> pointer still causes the size problem but the ICE goes away. The programme even
> executes!
>
> I cannot see why there is a problem in estimating the size, since the relevant
> components are either allocatable or pointers - thus the size can be
> determined.
>
> Cheers
>
> Paul
>
> --
> You are receiving this mail because:
> You are on the CC list for the bug.



More information about the Gcc-bugs mailing list