[Bf-blender-cvs] [495a98d6236] master: BLI_assert: prevent abort from suppressing return-type warning

Campbell Barton noreply at git.blender.org
Tue May 26 05:41:11 CEST 2020


Commit: 495a98d623648ca787ddb2c0dbaa08fe313f1adf
Author: Campbell Barton
Date:   Tue May 26 13:37:52 2020 +1000
Branches: master
https://developer.blender.org/rB495a98d623648ca787ddb2c0dbaa08fe313f1adf

BLI_assert: prevent abort from suppressing return-type warning

Recent commit deaff945d0b96 broke release builds but not debug builds,
with this change the warning happens in both cases.

===================================================================

M	source/blender/blenlib/BLI_assert.h

===================================================================

diff --git a/source/blender/blenlib/BLI_assert.h b/source/blender/blenlib/BLI_assert.h
index b9cb32a310e..603be115b35 100644
--- a/source/blender/blenlib/BLI_assert.h
+++ b/source/blender/blenlib/BLI_assert.h
@@ -69,7 +69,13 @@ extern "C" {
 #  endif
 /* _BLI_ASSERT_ABORT */
 #  ifdef WITH_ASSERT_ABORT
-#    define _BLI_ASSERT_ABORT abort
+#    ifdef __GNUC__
+/* Cast to remove 'noreturn' attribute since this suppresses missing return statements,
+ * allowing changes to debug builds to accidentally to break release builds. */
+#      define _BLI_ASSERT_ABORT ((void (*)(void))(*(((void **)abort))))
+#    else
+#      define _BLI_ASSERT_ABORT abort
+#    endif
 #  else
 #    define _BLI_ASSERT_ABORT() (void)0
 #  endif



More information about the Bf-blender-cvs mailing list