>>> -  if (s->u.s.line.file != NULL
>>> -      || (s->u.s.lang_struct && (s->u.s.lang_struct->u.s.bitmap &
>>> bitmap)))
>>> +  if (s->u.s.lang_struct && (s->u.s.lang_struct->u.s.bitmap & bitmap))
>>>       {
>>>         error_at_line (pos, "duplicate definition of '%s %s'",
>>>                       isunion ? "union" : "struct", s->u.s.tag);
>>
>>
>> ..and this are missing from the ChangeLog. Also, what is the
>> motivation behind the latter?
>
>
> I explained it in the original submission:
>
>
> "There is one check I needed to remove that gave me some trouble.
> When a ctor is detected, we have already parsed the name of the
> ctor as a type, which is then registered in the list of structures.
>
> We go on to recognize it as a ctor *after* the type has been
> registered.  We reject the field in declarator() and it is never
> added to the list of fields for the class.
>
> However, when we reach the end of the class, we find that the
> type we created while parsing the ctor has line number
> information in it (the line where the ctor was) and gengtype
> thinks that it is a duplicate structure definition.
>
> I took out this check for two reasons: (a) It is actually
> unnecessary because if there were really duplicate definitions of
> this structure, the code would not compile, and (b) all the other
> alternatives required making the parser much more convoluted and
> I'm trying hard not to make gengtype parser too smart."
>
> I should've clarified that I was talking about that hunk, sorry.  I will add
> a ChangeLog entry for it.

Doh, yes, of course. It's OK with ChangeLog entry added.

Thanks,
-- 
Laurynas

Reply via email to