CHECK_C_COMPILER_FLAG(-Wstrict-prototypes SUPPORT_WSTRICT_PROTOTYPES)
CHECK_C_COMPILER_FLAG(-pedantic SUPPORT_PEDANTIC_FLAG)
CHECK_C_COMPILER_FLAG(-Wno-unused-const-variable SUPPORT_WNO_UNUSED_CONST)
+CHECK_C_COMPILER_FLAG(-Wmissing-noreturn SUPPORT_WMISSING_NORETURN)
# GCC 6 specific
CHECK_C_COMPILER_FLAG(-Wnull-dereference SUPPORT_WNULL_DEREFERENCE)
CHECK_C_COMPILER_FLAG(-Wduplicated-cond SUPPORT_WDUPLICATED_COND)
IF(SUPPORT_WIMPLICIT_FALLTHROUGH)
ADD_COMPILE_OPTIONS("-Wno-implicit-fallthrough")
ENDIF(SUPPORT_WIMPLICIT_FALLTHROUGH)
+IF(SUPPORT_WMISSING_NORETURN)
+ ADD_COMPILE_OPTIONS("-Wmissing-noreturn")
+ENDIF(SUPPORT_WMISSING_NORETURN)
CHECK_C_COMPILER_FLAG(-fPIC SUPPORT_FPIC)
IF(SUPPORT_FPIC)
return strcmp(s1, s2) == 0;
}
+__attribute__((noreturn))
static void print_arglist(int exit_code) {
FILE * f = exit_code ? stderr : stdout;
fprintf(f, "Usage: snowball SOURCE_FILE... [OPTIONS]\n\n"
/*
* Start worker process
*/
+__attribute__((noreturn))
void
start_controller_worker (struct rspamd_worker *worker)
{
/*
* Start worker process
*/
+__attribute__((noreturn))
void
start_fuzzy (struct rspamd_worker *worker)
{
static sig_atomic_t ok = 0;
static jmp_buf j;
+__attribute__((noreturn))
static void
rspamd_cryptobox_ill_handler (int signo)
{
}
}
+__attribute__((noreturn))
static void
rspamadm_configdump (gint argc, gchar **argv, const struct rspamadm_command *cmd)
{
return res;
}
+__attribute__((noreturn))
static void
rspamadm_confighelp (gint argc, gchar **argv, const struct rspamadm_command *cmd)
{
}
}
+__attribute__((noreturn))
void
start_rspamd_proxy (struct rspamd_worker *worker)
{
/*
* Start worker process
*/
+__attribute__((noreturn))
void
start_worker (struct rspamd_worker *worker)
{