mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
Add conditional support for noreturn functions.
This adds support for tagging functions with the noreturn attribute. If DO_CRASH is enabled then ast_do_crash never returns. If AST_DEVMODE and DO_CRASH are enabled then failed assertions never return. This can resolve a large number of false positives with static analyzers. ASTERISK-26220 #close Change-Id: Icfb61e5fe54574eced4c3e88b317244f467ec753
This commit is contained in:
@@ -2425,7 +2425,7 @@ char *ast_utils_which(const char *binary, char *fullpath, size_t fullpath_size)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void ast_do_crash(void)
|
||||
void DO_CRASH_NORETURN ast_do_crash(void)
|
||||
{
|
||||
#if defined(DO_CRASH)
|
||||
abort();
|
||||
@@ -2438,7 +2438,7 @@ void ast_do_crash(void)
|
||||
}
|
||||
|
||||
#if defined(AST_DEVMODE)
|
||||
void __ast_assert_failed(int condition, const char *condition_str, const char *file, int line, const char *function)
|
||||
void DO_CRASH_NORETURN __ast_assert_failed(int condition, const char *condition_str, const char *file, int line, const char *function)
|
||||
{
|
||||
/*
|
||||
* Attempt to put it into the logger, but hope that at least
|
||||
|
Reference in New Issue
Block a user