svn commit: r228322 - in head: include lib/libc/stdlib sys/sys

David Schultz das at FreeBSD.ORG
Wed Dec 7 19:11:36 UTC 2011


On Wed, Dec 07, 2011, David Chisnall wrote:
> Author: theraven
> Date: Wed Dec  7 15:25:48 2011
> New Revision: 228322
> URL: http://svn.freebsd.org/changeset/base/228322
> 
> Log:
>   Implement quick_exit() / at_quick_exit() from C++11 / C1x.  Also add a
>   __noreturn macro and modify the other exiting functions to use it.
>   
>   The __noreturn macro, unlike __dead2, must be used BEFORE the function.
>   This is in line with the C and C++ specifications that place _Noreturn (c1x)
>   and [[noreturn]] (C++11) in front of the functions.  As with __dead2, this
>   macro falls back to using the GCC attribute.
>   
>   Unfortunately, clang currently sets the same value for the C version macro
>   in C99 and C1x modes, so these functions are hidden by default.  At some
>   point before 10.0, I need to go through the headers and clean up the C1x /
>   C++11 visibility.

Nice.

Why not use the standard spelling, '_Noreturn'?  In pre-C1X modes,
_Noreturn is a reserved identifier since it starts with an underscore
and capital letter, so it's not considered namespace pollution.


More information about the svn-src-head mailing list