From 13a3d2472961902e809bb90fc5adc6b7696f7db5 Mon Sep 17 00:00:00 2001 From: Marin Ramesa Date: Mon, 16 Dec 2013 23:55:18 +0100 Subject: Mark functions that don't return with attribute noreturn --- kern/eventcount.c | 2 +- kern/machine.c | 2 +- kern/machine.h | 2 +- kern/sched_prim.c | 2 +- kern/sched_prim.h | 6 +++--- kern/thread.c | 4 ++-- kern/thread.h | 2 +- kern/thread_swap.c | 2 +- kern/thread_swap.h | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) (limited to 'kern') diff --git a/kern/eventcount.c b/kern/eventcount.c index 1bc9968..22c4932 100644 --- a/kern/eventcount.c +++ b/kern/eventcount.c @@ -123,7 +123,7 @@ void evc_notify_abort(const thread_t thread) * Just so that we return success, and give * up the stack while blocked */ -static void +static void __attribute__((noreturn)) evc_continue(void) { thread_syscall_return(KERN_SUCCESS); diff --git a/kern/machine.c b/kern/machine.c index 5d1ea34..d5944ce 100644 --- a/kern/machine.c +++ b/kern/machine.c @@ -390,7 +390,7 @@ void action_thread_continue() } } -void action_thread() +void __attribute__((noreturn)) action_thread() { action_thread_continue(); /*NOTREACHED*/ diff --git a/kern/machine.h b/kern/machine.h index af2b7e9..c67213a 100644 --- a/kern/machine.h +++ b/kern/machine.h @@ -53,6 +53,6 @@ extern kern_return_t processor_shutdown (processor_t); /* * action_thread() shuts down processors or changes their assignment. */ -extern void action_thread_continue (void); +extern void action_thread_continue (void) __attribute__((noreturn)); #endif /* _MACHINE_H_ */ diff --git a/kern/sched_prim.c b/kern/sched_prim.c index f817004..1d2e14e 100644 --- a/kern/sched_prim.c +++ b/kern/sched_prim.c @@ -1618,7 +1618,7 @@ int no_dispatch_count = 0; * to execute. */ -void idle_thread_continue(void) +void __attribute__((noreturn)) idle_thread_continue(void) { processor_t myprocessor; volatile thread_t *threadp; diff --git a/kern/sched_prim.h b/kern/sched_prim.h index c7ff977..50041e4 100644 --- a/kern/sched_prim.h +++ b/kern/sched_prim.h @@ -132,8 +132,8 @@ extern void thread_timeout_setup( * Machine-dependent code must define these functions. */ -extern void thread_bootstrap_return(void); -extern void thread_exception_return(void); +extern void thread_bootstrap_return(void) __attribute__((noreturn)); +extern void thread_exception_return(void) __attribute__((noreturn)); extern void __attribute__((__noreturn__)) thread_syscall_return(kern_return_t); extern thread_t switch_context( @@ -178,7 +178,7 @@ void checkrq(run_queue_t rq, char *msg); void thread_check(thread_t th, run_queue_t rq); #endif /* DEBUG */ -extern void idle_thread(void); +extern void idle_thread(void) __attribute__((noreturn)); extern void sched_thread(void); #endif /* _KERN_SCHED_PRIM_H_ */ diff --git a/kern/thread.c b/kern/thread.c index 1414078..ddb06d5 100644 --- a/kern/thread.c +++ b/kern/thread.c @@ -1123,7 +1123,7 @@ kern_return_t thread_halt( } } -void walking_zombie(void) +void __attribute__((noreturn)) walking_zombie(void) { panic("the zombie walks!"); } @@ -1693,7 +1693,7 @@ thread_t kernel_thread( * This kernel thread runs forever looking for threads to destroy * (when they request that they be destroyed, of course). */ -void reaper_thread_continue(void) +void __attribute__((noreturn)) reaper_thread_continue(void) { for (;;) { thread_t thread; diff --git a/kern/thread.h b/kern/thread.h index 9946bde..d088c27 100644 --- a/kern/thread.h +++ b/kern/thread.h @@ -350,7 +350,7 @@ extern thread_t kernel_thread( void (*start)(void), void * arg); -extern void reaper_thread(void); +extern void reaper_thread(void) __attribute__((noreturn)); #if MACH_HOST extern void thread_freeze( diff --git a/kern/thread_swap.c b/kern/thread_swap.c index e76511e..94e5c21 100644 --- a/kern/thread_swap.c +++ b/kern/thread_swap.c @@ -154,7 +154,7 @@ void thread_doswapin(thread) * This procedure executes as a kernel thread. Threads that need to * be swapped in are swapped in by this thread. */ -void swapin_thread_continue(void) +void __attribute__((noreturn)) swapin_thread_continue(void) { for (;;) { thread_t thread; diff --git a/kern/thread_swap.h b/kern/thread_swap.h index 7f611ec..9d64537 100644 --- a/kern/thread_swap.h +++ b/kern/thread_swap.h @@ -38,6 +38,6 @@ extern void swapper_init(void); extern void thread_swapin(thread_t thread); extern void thread_doswapin(thread_t thread); -extern void swapin_thread(void); +extern void swapin_thread(void) __attribute__((noreturn)); #endif /* _KERN_THREAD_SWAP_H_ */ -- cgit v1.2.3