> On 05/19/2015 01:33 PM, Jan Hubicka wrote:
> >I tracked down that those are implicit typedef created by 
> >create_implicit_typedef.
> >My patch made them no longer anonymous that in turn triggers the bogus 
> >diagnostics.
> >I do not think it is fully correct though - those types are not anonymous.
> 
> Hmm?  The types are anonymous:
> 
> static struct
> {
>   int moves_inserted;
>   int copies_inserted;
>   int insns_deleted;
> } stats;
> 
> Here there is a variable named 'stats', but its type has no name.

Ah, sorry. I misread the declaration and thought it produce type stats. I 
suppose this cost
me an afternoon yesterday :)

Indeed this is anonymous type. I see it is anonymous even though it is not in
any namespace, so it makes sense that I needed to make an exception to my hack
looking for explicit namespace in the DECL_CONTEXT.
> 
> >(I also wonder we we need to introdce a type name "._134") and pass it all 
> >the way down
> >to LTO.
> 
> Anonymous types do need to have some name, so that we can mangle
> them. But I don't know if they need to remain past free_lang_data.

I think they can be killed there, as a minor optimization.  I will look into it.
Thanks for the explanation.

Honza
> 
> Jason

Reply via email to