Am Donnerstag, dem 08.08.2024 um 10:42 +0200 schrieb Alejandro Colomar: > > > > ... > > > > > | ^ > > > > > > If I make [0] always result in a constant expression (and thus break > > > some [*] cases), by doing > > > > > > - var = var || (zero && C_TYPE_VARIABLE_SIZE (type)); > > > > > > Then the problem disappears. But I'm worried that it might be hiding > > > the problem instead of removing it, since I don't really understand why > > > it's happening. Do you know why? > > > > > > Anyway, I'll remove that line to support [0]. But it would be > > > interesting to learn why this problem triggers. > > > > You need the line to support variable size arrays. > > Not really. 'zero' is only true for [0] and for [*], but nor for > [zero], right? > > All vla tests seem to pass if I remove that line. The only issue will > be that > > void f(char (*a)[*], int (*x)[__lengthof__(*a)]); > > will result in 'int (*x)[0]' until you change the implementation of [*], > but I think we can live with that small detail.
I plan to change the representation of [0], so it would be nice if the [*] cases are correct as much as possible so that they not get forgotten later. Martin > > > Please just uncomment > > your test with a reference to the bug for now and I will try fix this ASAP. > > I'll send v6 in a moment; feel free to insist in this if you disagree > after seeing it, but I think it works well without the line. > > > > > Martin > > Cheers, > Alex > -- Univ.-Prof. Dr. rer. nat. Martin Uecker Graz University of Technology Institute of Biomedical Imaging