On Mon, Mar 13, 2023 at 9:40 PM Todd C. Miller <Todd.Miller@sudo.ws> wrote:
On Sat, 11 Mar 2023 11:18:43 +0100, Martin Jansa via tz wrote:

> I was building tz with gcc-13 and noticed that without explicit -std=c2x it
> fails to build 2022g version with:
> ```
> zic.c:462:1: warning: ‘noreturn’ attribute ignored [-Wattributes]
>   462 | static ATTRIBUTE_NORETURN void
>       | ^~~~~~
> zic.c:462:27: error: expected identifier or ‘(’ before ‘void’
>   462 | static ATTRIBUTE_NORETURN void
>       |                           ^~~~
> ```

Try swapping the order of ATTRIBUTE_NORETURN and "static".  C23
attributes are supposed to come first (unlike gcc-style attributes)
similar to C++.

Thanks, you're right.

And when I've started to do that instead of my work around ("if __has_c_attribute(noreturn) && 202000 <= __STDC_VERSION__") I've forked tz on github to send it as PR and discovered that it's already resolved there in version newer than 2022g I was using locally, don't know how I've overlooked that before (probably because I was looking more at private.h and less on zic.c/zdump.c).

It's resolved in:
https://github.com/eggert/tz/commit/9cfe9507fcc22cd4a0c4da486ea1c7f0de6b075f

I'll at least backport it to OpenEmbedded now :).

Regards,