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

Reply via email to