Hello,

On Mon, 7 Apr 2025, Martin Uecker wrote:

> > So, what specifically would the two attributes do different?  FWIW: what 
> > worries me about accepting a generic expression in counted_by, that isn't 
> > prefixed by a (possibly empty) decl, is that after seeing a non-type 
> > identifier the parser doesn't yet know if it's the lone-ident case (look 
> > up in struct scope) or the expression case (look up everything in global 
> > scope).  It requires look-ahead to decide this.
> > 
> > Would that be the difference between the attributes?  One accepting _only_ 
> > a lone-ident or the decl+expr syntax, and the other _only_ expressions 
> > that are never looked up in struct-scope (not even if its lone-ident)?
> 
> My understanding is that one accepts only a lone identifier and nothing
> else, i.e.
> 
> counted_by(identifier)
> 
> and the other only accepts expressions, possibly including a forward
> declaration.
> 
> counted_by_expr(expression)
> counted_by_expr(decl; expression)

What exactly happens when counted_by_expr is used with only an identifier 
expression, without decl?  Is the ident looked up normally, i.e. not in 
struct scope.  If so, then good, it would resolve my worry.


Ciao,
Michael.

Reply via email to