Hi Paul,
> > the only position that works for both C and C++ is the first one:
> > _GL_NORETURN_FUNC extern void foo (void);
>
> Maybe a shorter name for this usage: _GL_NORETURN, perhaps?
If we want to offer a short macro name, such as _GL_NORETURN, it should
be usable in both places, function declarations and function pointers.
That is, make it an alias of _GL_NORETURN_FUNCPTR.
> Don't some compilers complain if the storage class ('extern', here) is
> not first?
GCC and clang, at least, prefer 'extern' after '[[noreturn]]'.
Bruno