https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97947

--- Comment #5 from Peter Bergner <bergner at gcc dot gnu.org> ---
(In reply to Marek Polacek from comment #2)
> We crash here
> 
> 1143   /* Come here only for aggregates: records, arrays, unions, complex
> numbers
> 1144      and vectors.  */
> 1145   gcc_assert (code == ARRAY_TYPE
> 1146               || VECTOR_TYPE_P (type)
> 1147               || code == RECORD_TYPE
> 1148               || code == UNION_TYPE
> 1149               || code == COMPLEX_TYPE);
> 
> because code == OPAQUE_TYPE.

Since OPAQUE_TYPE is a type of aggregate, I modified the assert to allow code
== OPAQUE_TYPE and that fixes the ICE.  I don't feel comfortable sprinkling
other OPAQUE_TYPE usage around anywhere else unless we have a test case that
shows we need it.

Reply via email to