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-all
mailing list