mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-25 03:01:03 +00:00
check: Always mark _ck_assert_failed as noreturn
So that we can use `fail` like `g_assert_not_reached`. The comment is apparently wrong or outdated, as GCC considers it legal for noreturn-marked functions to return using longjmp. See the thread at https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/merge_requests/59#note_576422 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/573>
This commit is contained in:
parent
cb5d31a2fb
commit
cd6bc944f9
2 changed files with 3 additions and 14 deletions
|
@ -384,13 +384,12 @@ _ck_assert_failed (const char *file, int line, const char *expr, ...)
|
||||||
|
|
||||||
va_end (ap);
|
va_end (ap);
|
||||||
send_failure_info (to_send);
|
send_failure_info (to_send);
|
||||||
if (cur_fork_status () == CK_FORK) {
|
|
||||||
#if defined(HAVE_FORK) && HAVE_FORK==1
|
#if defined(HAVE_FORK) && HAVE_FORK==1
|
||||||
|
if (cur_fork_status () == CK_FORK) {
|
||||||
_exit (1);
|
_exit (1);
|
||||||
#endif /* HAVE_FORK */
|
|
||||||
} else {
|
|
||||||
longjmp (error_jmp_buffer, 1);
|
|
||||||
}
|
}
|
||||||
|
#endif /* HAVE_FORK */
|
||||||
|
longjmp (error_jmp_buffer, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
SRunner *
|
SRunner *
|
||||||
|
|
|
@ -422,20 +422,10 @@ static void __testname (int _i CK_ATTRIBUTE_UNUSED)\
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is called whenever an assertion fails.
|
* This is called whenever an assertion fails.
|
||||||
* Note that it only has the noreturn modifier when
|
|
||||||
* using fork. If fork is unavailable, the function
|
|
||||||
* calls longjmp() when a test assertion fails. Marking
|
|
||||||
* the function as noreturn causes gcc to make assumptions
|
|
||||||
* which are not valid, as longjmp() is like a return.
|
|
||||||
*/
|
*/
|
||||||
#if @HAVE_FORK@
|
|
||||||
CK_DLL_EXP void CK_EXPORT
|
CK_DLL_EXP void CK_EXPORT
|
||||||
_ck_assert_failed (const char *file, int line, const char *expr, ...)
|
_ck_assert_failed (const char *file, int line, const char *expr, ...)
|
||||||
CK_ATTRIBUTE_NORETURN;
|
CK_ATTRIBUTE_NORETURN;
|
||||||
#else
|
|
||||||
CK_DLL_EXP void CK_EXPORT _ck_assert_failed (const char *file, int line,
|
|
||||||
const char *expr, ...);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fail the test if expression is false
|
* Fail the test if expression is false
|
||||||
|
|
Loading…
Reference in a new issue