[Bug fortran/59198] [4.7/4.8/4.9 Regression] ICE on cyclically dependent polymorphic types
pault at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Feb 23 20:49:00 GMT 2014
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
More information about the Gcc-bugs
mailing list