[PATCH B2/2] Use builtin_unreachable in assert
Mike Frysinger
vapier@gentoo.org
Wed Mar 4 19:47:00 GMT 2015
On 04 Mar 2015 11:25, Roland McGrath wrote:
> > > "No side effects" at the C level certainly does not
> > > preclude a different correct translation of the program to machine code.
> >
> > sure ... i wasn't saying otherwise. my point is that __builtin_unreachable
> > doesn't do that -- it explicitly is documented by gcc as:
> > If control flow reaches the point of the __builtin_unreachable, the program is
> > undefined.
> >
> > if there was a solution as Richard alluded to that allows for expansion of the
> > expression all the time w/out breaking things when the assert is actually hit,
> > i'm all for that.
>
> I don't understand what your concern is. A call to __assert_fail leads to
> a call to abort and that is no more or less well-defined or recoverable
> than __builtin_unreachable.
yes, when NDEBUG is not defined. but that's not what we're discussing here.
if your intention is for assert statements to crash the program even when NDEBUG
is defined, then what exactly is the point of it ? why don't we just delete it
instead ?
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20150304/3158196b/attachment.sig>
More information about the Libc-alpha
mailing list