<p>Harald Welte has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/9788">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">osmo_panic(): Annotate as __attribute__ ((noreturn))<br><br>In Change-Id I5a70eb65952cbc329bf96eacb428b07a9da32433 we redirected<br>all OSMO_ASSERT() via osmo_panic().  However, this caused various<br>applications to have build failures, as OSMO_ASSERT() now appeared<br>to be able to return to the call site.  Let's inform the compiler<br>explicitly that there's no return from osmo_panic().<br><br>Change-Id: I8adf4c7b0ee6a4581cef8dd4e9f6a1dfde70ee55<br>---<br>M include/osmocom/core/panic.h<br>M src/panic.c<br>2 files changed, 12 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/88/9788/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/core/panic.h b/include/osmocom/core/panic.h</span><br><span>index 2bb4240..e6a5bb5 100644</span><br><span>--- a/include/osmocom/core/panic.h</span><br><span>+++ b/include/osmocom/core/panic.h</span><br><span>@@ -7,9 +7,9 @@</span><br><span> #include <stdarg.h></span><br><span> </span><br><span> /*! panic handler callback function type */</span><br><span style="color: hsl(0, 100%, 40%);">-typedef void (*osmo_panic_handler_t)(const char *fmt, va_list args);</span><br><span style="color: hsl(120, 100%, 40%);">+typedef void (*osmo_panic_handler_t)(const char *fmt, va_list args) __attribute__((noreturn));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-extern void osmo_panic(const char *fmt, ...);</span><br><span style="color: hsl(120, 100%, 40%);">+extern void osmo_panic(const char *fmt, ...) __attribute__ ((noreturn));</span><br><span> extern void osmo_set_panic_handler(osmo_panic_handler_t h);</span><br><span> </span><br><span> /*! @} */</span><br><span>diff --git a/src/panic.c b/src/panic.c</span><br><span>index a08f89f..61d1840 100644</span><br><span>--- a/src/panic.c</span><br><span>+++ b/src/panic.c</span><br><span>@@ -27,6 +27,7 @@</span><br><span>  *  @{</span><br><span>  * \file panic.c */</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include <unistd.h></span><br><span> #include <osmocom/core/panic.h></span><br><span> #include <osmocom/core/backtrace.h></span><br><span> </span><br><span>@@ -50,6 +51,8 @@</span><br><span> </span><br><span> #else</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static void osmo_panic_default(const char *fmt, va_list args) __attribute__ ((noreturn));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static void osmo_panic_default(const char *fmt, va_list args)</span><br><span> {</span><br><span>         while (1);</span><br><span>@@ -83,8 +86,14 @@</span><br><span>              osmo_panic_default(fmt, args);</span><br><span> </span><br><span>   va_end(args);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* not reached, but make compiler believe we really never return */</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef PANIC_INFLOOP</span><br><span style="color: hsl(120, 100%, 40%);">+    exit(2342);</span><br><span style="color: hsl(120, 100%, 40%);">+#else</span><br><span style="color: hsl(120, 100%, 40%);">+    while (1) ;</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">- </span><br><span> </span><br><span> /*! Set the panic handler</span><br><span>  *  \param[in] h New panic handler function</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/9788">change 9788</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/9788"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmocore </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I8adf4c7b0ee6a4581cef8dd4e9f6a1dfde70ee55 </div>
<div style="display:none"> Gerrit-Change-Number: 9788 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>