> On Mar 26, 2024, at 13:20, Joseph Myers <josmy...@redhat.com> wrote: > > On Tue, 26 Mar 2024, Qing Zhao wrote: > >>> What happens when there are multiple counted_by attributes on the same >>> field? As far as I can see, all but one end up being ignored (by the code >>> that actually uses the attribute). >> >> In general, is there any rule for handling multiple same attributes in >> GCC? i.e, from left to right, the last one wins? Or something else? I’d >> like to following the consistent rule with other places in GCC. > > Sometimes, they are meaningful and all can be respected. (An example is > the format_arg attribute, where ngettext legitimately has two such > attributes.) > > When not meaningful, an error is appropriate. For example, with section > attributes you can get > > error ("section of %q+D conflicts with previous declaration", > *node); > > if different sections are named. I think that's a suitable model for the > new attribute here: allow duplicates if they name the same field, but give > errors if they name different fields, just as with the section attribute. > > Once you give an error for multiple attributes naming different fields, > which one wins is just a question of error recovery; the specific choice > doesn't matter much, as long as you don't get an ICE in later processing.
Agreed and fixed as suggested. Thanks. Qing > > -- > Joseph S. Myers > josmy...@redhat.com