From 495a98d623648ca787ddb2c0dbaa08fe313f1adf Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 26 May 2020 13:37:52 +1000 Subject: 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. --- source/blender/blenlib/BLI_assert.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3