[cfe-dev] Duplicate attributes

Aaron Ballman aaron at aaronballman.com
Sat Oct 5 16:15:31 PDT 2013


I noticed that we have a diagnostic "err_repeat_attribute", but
currently only vecreturn is making use of it.

This seems like it is something we could generalize across attributes
relatively easily, but there appears to be no documentation (even in
the C++ standard) as to whether duplicate attributes are acceptable or
not for any given attribute.

As best I can tell, most attributes should diagnose a duplicate on the
same subject.  The exceptions, as best I can gather, are:

alloc_size
format_arg
nonnull
ownership_holds
ownership_returns
ownership_takes
argument_with_type_tag
pointer_with_type_tag

Basically, anything which allows you to specify an argument index as
an attribute parameter seems like it could have a duplicate attribute.

Would it make sense to add a generalized duplicate attribute test in
SemaDeclAttr that emits an error when a duplicate is found, except for
the above cases?

~Aaron



More information about the cfe-dev mailing list