That reminds me, we're in a sticky situation about _Noreturn for another reason.

Draft C23 requires [[noreturn]] before "extern" and states that _Noreturn is obsolescent. It's plausible that a future C version will drop the requirement to support the _Noreturn keyword. If that happens, "#define _Noreturn [[noreturn]]" won't be a valid workaround unless people write "_Noreturn extern" instead of "extern _Noreturn", and similarly for "_Noreturn static" etc.

Should we change Gnulib code and put _Noreturn first in its declarations now, proactively? This might help future-proof the code, and get people used to putting directives first. (But of course it would be annoying to churn in this way.)

Reply via email to