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

Reply via email to