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