> On Aug 5, 2024, at 12:51, Jakub Jelinek <ja...@redhat.com> wrote: > > On Mon, Aug 05, 2024 at 04:46:09PM +0000, Qing Zhao wrote: >> So, you want me to add counted_by test-suite for C23? (Which should be >> supported) >> Okay, but I will do it in another separate patch since this patch is for C++. >>> The C++11/C23 standard attributes are more strict on where they can appear >>> depending on what it appertains to, as it applies to declarations, I think >>> it needs to go before the [] or at the start of the declaration, so >>> [[gnu::counted_by (count)]] int field[]; >>> or >>> int field [[gnu::counted_by (count)]] []; >>> but I could be wrong, better test it… >> For C++11, as I just checked: >> >> int field[] [[gnu::counted_by (count)]]; >> >> Is fine. > > What do you mean by fine, that it emits the sorry? Yes, but the question > is if it will be ok when the support is added. > struct S { > int s; > int f[] [[gnu::counted_by (s)]]; > }; > with -std=c23 certainly emits > test.c:3:3: warning: ‘counted_by’ attribute does not apply to types > [-Wattributes] > 3 | int f[] [[gnu::counted_by (s)]]; > | ^~~ > while it is fine for > int f [[gnu::counted_by (s)]] []; > and > [[gnu::counted_by (s)]] int f[]; > So, I'd use that in the C++ testcase too...
Okay. thanks. Qing > > Jakub >