<div dir="ltr">Hello,<div><br>I was building tz with gcc-13 and noticed that without explicit -std=c2x it fails to build 2022g version with:<br>```<br>zic.c:462:1: warning: ‘noreturn’ attribute ignored [-Wattributes]<br>  462 | static ATTRIBUTE_NORETURN void<br>      | ^~~~~~<br>zic.c:462:27: error: expected identifier or ‘(’ before ‘void’<br>  462 | static ATTRIBUTE_NORETURN void<br>      |                           ^~~~<br>```<br><br>The last code change on github in this are was:<div><a href="https://github.com/eggert/tz/commit/dbfcefe0c129e36e8c5acbcedf1400c1b486d962">https://github.com/eggert/tz/commit/dbfcefe0c129e36e8c5acbcedf1400c1b486d962</a></div><div><br>It builds fine for me with gcc-12 without -std:<br>```<br>__STDC_VERSION__ = 201710 <br>__has_c_attribute(noreturn) = 0<br>```<br>and with -std=c2x:<br>```<br>__STDC_VERSION__ = 202000 <br>__has_c_attribute(noreturn) = 0 <br>__STRICT_ANSI__<br>```<br><br>but with gcc-13 it builds only with explicit -std=c2x:<br>```<br>__STDC_VERSION__ = 202000 <br>__has_c_attribute(noreturn) = 202202 <br>__STRICT_ANSI__<br>```<br><br>Maybe because __has_c_attribute(noreturn) returns 202202 even when __STDC_VERSION__ doesn't accept it yet?<br>```<br>__STDC_VERSION__ = 201710 <br>__has_c_attribute(noreturn) = 202202<br>```<br><br>From <a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2764.pdf">https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2764.pdf</a> it's not clear to me when exactly [[noreturn]] can be used. It says only this about the value `Drafting note: The value used for __has_c_attribute is a placeholder that is to be replaced by the editors<br>with the year and month the proposal is accepted into the working draft.`<br><br>Is it a bug in gcc or should it be handled somehow by private.h?</div><div><br>Thanks<br></div></div></div>