Mesa (master): auxiliary/os,auxiliary/util: Fix the `‘noreturn’ function does return` warning.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Thu Apr 17 08:56:55 UTC 2014


Module: Mesa
Branch: master
Commit: a2b89c4ae1c94005b3762e7ff06d73096fa97644
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a2b89c4ae1c94005b3762e7ff06d73096fa97644

Author: José Fonseca <jfonseca at vmware.com>
Date:   Wed Apr 16 17:36:51 2014 +0100

auxiliary/os,auxiliary/util: Fix the `‘noreturn’ function does return` warning.

Now that _debug_assert_fail() has the noreturn attribute, it is better
that execution truly never returns.  Not just for sake of silencing the
warning, but because the code at the return IP address may be invalid or
lead to inconsistent results.

This removes support for the GALLIUM_ABORT_ON_ASSERT debugging
environment variable, but between the usefulness of
GALLIUM_ABORT_ON_ASSERT and better static code analysis I think better
static code analysis wins.

Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/gallium/auxiliary/os/os_misc.h   |    2 +-
 src/gallium/auxiliary/util/u_debug.c |    5 +----
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/src/gallium/auxiliary/os/os_misc.h b/src/gallium/auxiliary/os/os_misc.h
index 5029ab9..582931f 100644
--- a/src/gallium/auxiliary/os/os_misc.h
+++ b/src/gallium/auxiliary/os/os_misc.h
@@ -67,7 +67,7 @@ extern "C" {
  * Abort the program.
  */
 #if defined(DEBUG)
-#  define os_abort() os_break()
+#  define os_abort() do { os_break(); abort(); } while(0)
 #else
 #  define os_abort() abort()
 #endif
diff --git a/src/gallium/auxiliary/util/u_debug.c b/src/gallium/auxiliary/util/u_debug.c
index ae248e0..fe51717 100644
--- a/src/gallium/auxiliary/util/u_debug.c
+++ b/src/gallium/auxiliary/util/u_debug.c
@@ -274,10 +274,7 @@ void _debug_assert_fail(const char *expr,
                         const char *function) 
 {
    _debug_printf("%s:%u:%s: Assertion `%s' failed.\n", file, line, function, expr);
-   if (debug_get_bool_option("GALLIUM_ABORT_ON_ASSERT", TRUE))
-      os_abort();
-   else
-      _debug_printf("continuing...\n");
+   os_abort();
 }
 
 




More information about the mesa-commit mailing list