Hi Tim,

> Just updated to commit c7f29c827df9284ec56233c515286c4d57361e4c
> and several CI jobs fail due to
> 
> ../config.h:3932:25: error: ISO C11 does not support omitting the string 
> in '_Static_assert' [-Werror=c11-c2x-compat]
>   3932 |   #define static_assert _Static_assert
>        |                         ^~~~~~~~~~~~~~
> 
> Affected systems are Debian testing+unstable (gcc 14.x), latest Alpine 
> (gcc 13.2.1).
> 
> Not sure if this a gcc or a gnulib issue, but wanted to let you know.

Thanks for the report. When you say, it fails, that's because you used
-Werror. -Werror is not supported for Gnulib code. So, all you can
rightfully complain about is a warning.

From the doc [1], it is clear that the intent is to check whether the code
would also be accepted by an ISO C 11 compiler.

But Gnulib wants a 'static_assert' that accepts 1 or 2 arguments. To this
effect, we have code for C 23 compilers (that use _Static_assert — this is
what produces the warning) and code for C 11 compilers (with some preprocessor
trick). As a consequence, this warning is not useful in Gnulib code.

Which is also why the 'manywarnings' module does not enable it (see
build-aux/gcc-warning.spec and m4/manywarnings.m4).

> My current work-around is to remove -Wc11-c2x-compat from the list of 
> auto-generated gcc warnings.

Yes, that is the right thing to do.

Bruno

[1] https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html




Reply via email to