> On Jul 28, 2025, at 5:54 PM, Bill Wendling <mo...@google.com> wrote:
> 
> On Mon, Jul 28, 2025 at 4:52 PM Yeoul Na <yeoul...@apple.com> wrote:
>> 
>> Could someone working on Linux answer my earlier question? Working on a 
>> compromise solution is one thing, but I’m trying to understand the situation 
>> better.
>> 
>>> Out of curiosity, do you think focusing on simple identifier cases (which, 
>>> as I understand, are the majority in the Linux kernel as well) would allow 
>>> us to make meaningful progress for now? My assumption is that even such 
>>> simple use cases (e.g., __counted_by(field) on a pointer field) are yet to 
>>> be widely adopted across the Linux codebases, but I’d love to hear your 
>>> perspective.
>> 
> 
> This is one of Kees's and my goals for the year. (Well, full
> __counted_by() on pointers in structs, not just single identifiers.) I
> think GCC recently added support for them, so we could progress
> somewhat with this. But Kees brought up several examples over
> different threads about how Linux would theoretically use the feature.
> They include, but aren't limited to, calling functions (e.g. byte
> swapping) and using variables outside of the struct. He may have many
> more examples, but those are two that I recall off the top of my head.
> 

Agree. Fwiw, our proposal for WG14 also discusses that the paragraph before 
“Simple identifiers only” section in page 7  
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3656.pdf.

“… For example, __counted_by does not permit the expression to contain 
arbitrary side-effects, which is implemented with a syntactic
check preventing assignments, (most) function calls, and common extensions like 
statement-expressions. If it would
make a late-parsing-like solution more acceptable to other implementations, we 
think it would be reasonable for the
committee to impose similar restrictions grammatically, thus reducing the size 
of the grammar that must be accepted
by the “late parser”. If this went as far as forbidding casts, it would 
actually reduce the expression grammar to a
context-free subset and allow the actual parsing to be done eagerly, although 
semantic analysis would still need to
be delayed until all the peers were known.”

Btw, could you remind me what was the byte swapping example? I couldn’t find it.

Thanks,
Yeoul



> -bw

Reply via email to