summaryrefslogtreecommitdiff
path: root/main/utils.c
diff options
context:
space:
mode:
authorCorey Farrell <git@cfware.com>2016-07-18 23:46:19 -0400
committerCorey Farrell <git@cfware.com>2016-07-19 22:45:10 -0500
commit8f6e9ffcc6231cfd4ae6c0a8b6e1d11beb59dc58 (patch)
treec8fbcec636d9768af4aef932844c21d7c36c6464 /main/utils.c
parent333a0fed33dccc5ae676dd78ef2e6e5331fbe1e1 (diff)
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
Diffstat (limited to 'main/utils.c')
-rw-r--r--main/utils.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/main/utils.c b/main/utils.c
index 09839752b..46edf43ea 100644
--- a/main/utils.c
+++ b/main/utils.c
@@ -2420,7 +2420,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();
@@ -2433,7 +2433,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