Re: RFA (layout): PATCH for c++/48029 (ICE-on-valid with templates and arrays)

2011-03-11 Thread Jason Merrill
On 03/10/2011 09:56 AM, Jason Merrill wrote: While looking at the history, it occurred to me that COMPLETE_OR_UNBOUND_ARRAY_TYPE_P is a better test than TYPE_SIZE in the type_hash_eq change, so I'm going to make that tweak to the patch OK, apparently this was a bad idea; it caused 48069. So I

Re: RFA (layout): PATCH for c++/48029 (ICE-on-valid with templates and arrays)

2011-03-10 Thread H.J. Lu
On Wed, Mar 9, 2011 at 6:59 PM, Jason Merrill wrote: > In this testcase, when we first declare the myvectypes and mytype3, > vector has not been instantiated, so we mark the array, and the > pointer to the array, for structural equality comparison.  When we actually > go to instantiate mytype3, we

Re: RFA (layout): PATCH for c++/48029 (ICE-on-valid with templates and arrays)

2011-03-10 Thread Richard Guenther
On Thu, Mar 10, 2011 at 3:56 PM, Jason Merrill wrote: > On 03/10/2011 04:56 AM, Richard Guenther wrote: >> >> Ugh.  Why do we call layout_type on arrays with incomplete element type >> at all? > > layout_type has been called from the language-independent build_array_type > since the dawn of revisi

Re: RFA (layout): PATCH for c++/48029 (ICE-on-valid with templates and arrays)

2011-03-10 Thread Jason Merrill
On 03/10/2011 04:56 AM, Richard Guenther wrote: Ugh. Why do we call layout_type on arrays with incomplete element type at all? layout_type has been called from the language-independent build_array_type since the dawn of revision control. I suppose the array type is still considered un-layo

Re: RFA (layout): PATCH for c++/48029 (ICE-on-valid with templates and arrays)

2011-03-10 Thread Richard Guenther
On Thu, Mar 10, 2011 at 3:59 AM, Jason Merrill wrote: > In this testcase, when we first declare the myvectypes and mytype3, > vector has not been instantiated, so we mark the array, and the > pointer to the array, for structural equality comparison.  When we actually > go to instantiate mytype3, w

RFA (layout): PATCH for c++/48029 (ICE-on-valid with templates and arrays)

2011-03-09 Thread Jason Merrill
In this testcase, when we first declare the myvectypes and mytype3, vector has not been instantiated, so we mark the array, and the pointer to the array, for structural equality comparison. When we actually go to instantiate mytype3, we complete vector and rebuild the array and pointer types,