path: root/include
diff options
authorRich Felker <>2016-08-30 16:39:54 -0400
committerRich Felker <>2016-08-30 16:39:54 -0400
commite738b8cbe64b6dd3ed9f47b6d4cd7eb2c422b38d (patch)
tree493734a392e2dfc2f84e8a5c92c4c848b2752794 /include
parent397586625e71d166f493f16bfe04f3005ae464c3 (diff)
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.
Diffstat (limited to 'include')
1 files changed, 1 insertions, 1 deletions
diff --git a/include/assert.h b/include/assert.h
index e679adbf..d14ec94e 100644
--- a/include/assert.h
+++ b/include/assert.h
@@ -16,7 +16,7 @@
extern "C" {
-void __assert_fail (const char *, const char *, int, const char *);
+_Noreturn void __assert_fail (const char *, const char *, int, const char *);
#ifdef __cplusplus