Jack Howarth <howa...@bromo.med.uc.edu> writes:

> On Mon, Nov 04, 2013 at 07:48:29PM -0500, Mark H Weaver wrote:
>> Matt Sicker <boa...@gmail.com> writes:
>> > In the function scm_ithrow, the parameter "int noreturn" is given. Now
>> > this works fine normally, but if stdnoreturn.h is included before
>> > throw.h (or libguile.h more likely), then this causes a compilation
>> > error. In throw.c, noreturn is even marked as an unused variable, so
>> > this is even more annoying! I recommend using "no_return" to prevent
>> > any namespace conflicts.
>> 
>> Fixed in stable-2.0.  Thanks for the report.
>> 
>> http://git.savannah.gnu.org/gitweb/?p=guile.git;a=commit;h=36c40440078c005cd5e239cca487d29f6f60007d
>> 
>>     Mark
>> 
>> 
>
> What is the motivation to change from attribute (noreturn) to attribute 
> (__noreturn__). Xcode 5.0
> has 
> /Library/Developer/CommandLineTools/usr/lib/clang/5.0/include/stdnoreturn.h 
> with...
>
[...]
>
> #ifndef __STDNORETURN_H
> #define __STDNORETURN_H
>
> #define noreturn _Noreturn
> #define __noreturn_is_defined 1

Yes, and this is a problem.  If this file has been included before
__scm.h, then I expect that __attribute__((noreturn)) will expand to
__attribute__((_Noreturn)) which will most likely fail.  That was the
motivation for this change.

> ps Also see http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15807.

I will respond to that bug report in a separate message.

     Mark



Reply via email to