> 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
> 

Reply via email to