aboutsummaryrefslogtreecommitdiffstats
path: root/src/panic.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-06-29 20:23:29 +0200
committerHarald Welte <laforge@gnumonks.org>2018-06-29 20:32:57 +0200
commitbc568d0b9f216f8d3c26b888131f4a9a7e9d368d (patch)
tree6ca453945a057bef7c861cfafdd319487a20ac99 /src/panic.c
parent459a180877d410d491d7adb1fdf9cc12fd51ac99 (diff)
osmo_panic(): Annotate as __attribute__ ((noreturn))
In Change-Id I5a70eb65952cbc329bf96eacb428b07a9da32433 we redirected all OSMO_ASSERT() via osmo_panic(). However, this caused various applications to have build failures, as OSMO_ASSERT() now appeared to be able to return to the call site. Let's inform the compiler explicitly that there's no return from osmo_panic(). Change-Id: I8adf4c7b0ee6a4581cef8dd4e9f6a1dfde70ee55
Diffstat (limited to 'src/panic.c')
-rw-r--r--src/panic.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/panic.c b/src/panic.c
index a08f89fa..072f458b 100644
--- a/src/panic.c
+++ b/src/panic.c
@@ -27,6 +27,7 @@
* @{
* \file panic.c */
+#include <unistd.h>
#include <osmocom/core/panic.h>
#include <osmocom/core/backtrace.h>
@@ -83,8 +84,14 @@ void osmo_panic(const char *fmt, ...)
osmo_panic_default(fmt, args);
va_end(args);
+
+ /* not reached, but make compiler believe we really never return */
+#ifndef PANIC_INFLOOP
+ exit(2342);
+#else
+ while (1) ;
+#endif
}
-
/*! Set the panic handler
* \param[in] h New panic handler function