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.)