libobs: Add OBS_NORETURN and use it for crash handler

Fixes some analyzers flagging code after a crashing path makes it
impossible to reach.
This commit is contained in:
Richard Stanway committed 2021-12-09 02:42:37 +01:00
1 parent b92e941b4f
commit b37acbcbc1
3 files changed
+6 -10

No files matched your search

+3 -9
View File
@@ -62,14 +62,8 @@ static void def_log_handler(int log_level, const char *format, va_list args,
UNUSED_PARAMETER(param);
}
#ifdef _MSC_VER
#define NORETURN __declspec(noreturn)
#else
#define NORETURN __attribute__((noreturn))
#endif
NORETURN static void def_crash_handler(const char *format, va_list args,
void *param)
OBS_NORETURN static void def_crash_handler(const char *format, va_list args,
void *param)
{
vfprintf(stderr, format, args);
exit(0);
@@ -104,7 +98,7 @@ void base_set_crash_handler(void (*handler)(const char *, va_list, void *),
crash_handler = handler;
}
void bcrash(const char *format, ...)
OBS_NORETURN void bcrash(const char *format, ...)
{
va_list args;
+1 -1
View File
@@ -85,7 +85,7 @@ EXPORT void blogva(int log_level, const char *format, va_list args);
PRINTFATTR(2, 3)
EXPORT void blog(int log_level, const char *format, ...);
PRINTFATTR(1, 2)
EXPORT void bcrash(const char *format, ...);
OBS_NORETURN EXPORT void bcrash(const char *format, ...);
#undef PRINTFATTR
+2
View File
@@ -25,9 +25,11 @@
#ifdef _MSC_VER
#define OBS_DEPRECATED __declspec(deprecated)
#define OBS_NORETURN __declspec(noreturn)
#define FORCE_INLINE __forceinline
#else
#define OBS_DEPRECATED __attribute__((deprecated))
#define OBS_NORETURN __attribute__((noreturn))
#define FORCE_INLINE inline __attribute__((always_inline))
#endif