On Mon, Aug 05, 2024 at 11:45:56AM +0200, Alejandro Colomar wrote:
> [CC += Kees, Qing]
> 
> Hi Joseph,
> 
> On Sun, Aug 04, 2024 at 08:34:24PM GMT, Alejandro Colomar wrote:
> > On Sun, Aug 04, 2024 at 08:02:25PM GMT, Martin Uecker wrote:
> > D'oh!  I screwed it.  I wanted to have written this:
> > 
> >     $ cat star.c 
> >     void foo(char (*a)[3][*], int (*x)[__lengthof__(*a)]);
> 
> I think this answers your question of if we want __lengthof__ to
> evaluate its operand if the top-level array is non-VLA but an inner
> array is VLA.
> 
> We clearly want it to not evaluate, because we want this __lengthof__
> to be a constant expression, ...

But if you don't evaluate the argument, you can't handle counted_by.
Because for counted_by you need the expression (the object on which it is
used).

        Jakub

Reply via email to