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. -- Joseph S. Myers josmyers@redhat.com