restore _Noreturn to __assert_fail
authorRich Felker <dalias@aerifal.cx>
Tue, 30 Aug 2016 20:39:54 +0000 (16:39 -0400)
committerRich Felker <dalias@aerifal.cx>
Tue, 30 Aug 2016 20:39:54 +0000 (16:39 -0400)
commite738b8cbe64b6dd3ed9f47b6d4cd7eb2c422b38d
tree493734a392e2dfc2f84e8a5c92c4c848b2752794
parent397586625e71d166f493f16bfe04f3005ae464c3
restore _Noreturn to __assert_fail

this reverts commit 2c1f8fd5da3306fd7c8a2267467e44eb61f12dd4. without
the _Noreturn attribute, the compiler cannot use asserts to perform
reachability/range analysis. this leads to missed optimizations and
spurious warnings.

the original backtrace problem that prompted the removal of _Noreturn
was not clearly documented at the time, but it seems to happen only
when libc was built without -g, which also breaks many other
backtracing cases.
include/assert.h
src/exit/assert.c