Paul Eggert <egg...@cs.ucla.edu> writes: > Mark H Weaver wrote: >> Looking at C11, it appears that _Noreturn belongs before the function >> return type, whereas __attribute__ (__noreturn__) and SCM_NORETURN goes >> after the formal parameter list. So I don't see how your proposed >> workaround can work properly. > > __attribute__ (__noreturn__) can be at the start of a declaration.
Ah, that's good! So perhaps we should just import the relevant gnulib module and convert all existing uses of SCM_NORETURN to use _Noreturn instead. What do you think? However, it should be noted that in all existing Guile releases, uses of SCM_NORETURN are always placed after the formal parameter list, so Bruce's proposed workaround would effectively put _Noreturn after the formal parameter list as well. I guess it would work if _Noreturn happens to be defined as __attribute__ ((__noreturn__)), but not in the general case. Thanks, Mark