On Fri, 29 Mar 2024, Qing Zhao wrote: > + /* Issue error when there is a counted_by attribute with a different > + field as the argument for the same flexible array member field. */
There's another case of this to consider, though I'm not sure where best to check for it (Martin might have suggestions) - of course this case will need testcases as well. Suppose, as allowed in C23, a structure is defined twice in the same scope, but the two definitions of the structure use inconsistent counted_by attributes. I'd say that, when the declarations are in the same scope (thus required to be consistent), it should be an error for the two definitions of what is meant to be the same structure to use incompatible counted_by attributes (even though the member declarations are otherwise the same). In C23 structures defined with the same tag in different scopes are compatible given requirements including compatible types for corresponding elements. It would seem most appropriate to me for such structures with incompatible counted_by attributes to be considered *not* compatible types (but it would be valid to define structures with the same tag, different scopes, and elements the same except for counted_by - just not to use them in any way requiring them to be compatible). > +The @code{counted_by} attribute may be attached to the C99 flexible array > +member of a structure. It indicates that the number of the elements of the > +array is given by the field "@var{count}" in the same structure as the As noted previously, the "" quotes should be removed there (or replaced by ``'' quotes). -- Joseph S. Myers josmy...@redhat.com