On Wed, 21 May 2025, Alejandro Colomar wrote:

> @@ -10572,6 +10583,8 @@ c_parser_unary_expression (c_parser *parser)
>      case CPP_KEYWORD:
>        switch (c_parser_peek_token (parser)->keyword)
>       {
> +     case RID_COUNTOF:
> +       return c_parser_countof_expression (parser);
>       case RID_SIZEOF:
>         return c_parser_sizeof_expression (parser);
>       case RID_ALIGNOF:

The comment above this function should be updated to include the _Countof 
syntax for C2Y.

> diff --git a/gcc/testsuite/gcc.dg/countof-vmt.c 
> b/gcc/testsuite/gcc.dg/countof-vmt.c
> new file mode 100644
> index 000000000000..cf4bfd1aa74e
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/countof-vmt.c
> @@ -0,0 +1,20 @@
> +/* { dg-do run } */
> +/* { dg-options "-std=c2y" } */

I think -std=gnu2y is more appropriate for tests such as this that are 
concerned with GNU extensions (VLAs in structures, in this case).

> diff --git a/gcc/testsuite/gcc.dg/countof-zero-compile.c 
> b/gcc/testsuite/gcc.dg/countof-zero-compile.c
> new file mode 100644
> index 000000000000..3dc60ce293bd
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/countof-zero-compile.c
> @@ -0,0 +1,38 @@
> +/* { dg-do compile } */
> +/* { dg-options "-std=c2y" } */

Likewise for this one using the extension of arrays with zero elements.

> diff --git a/gcc/testsuite/gcc.dg/countof-zero.c 
> b/gcc/testsuite/gcc.dg/countof-zero.c
> new file mode 100644
> index 000000000000..678a08148a5c
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/countof-zero.c
> @@ -0,0 +1,31 @@
> +/* { dg-do run } */
> +/* { dg-options "-std=c2y" } */

Likewise for this one as well.

-- 
Joseph S. Myers
josmy...@redhat.com

Reply via email to