From cf25cfa8485a9e0a255946ce019e3c5f04eb7726 Mon Sep 17 00:00:00 2001 From: blueswir1 Date: Wed, 14 Jan 2009 19:00:36 +0000 Subject: Add noreturn function attribute Introduce noreturn attribute and attach it to cpu_loop_exit as well as interrupt/exception helpers for i386. This avoids a bunch of gcc4 warnings. [ Note that this patch comes with a workaround to include qemu-common.h even in cases where is currently causes conflicts with dyngen-exec.h. I've been told that these conflicts will get resolved in the future (/me will try to have a look as well - as time permits). ] Signed-off-by: Jan Kiszka git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6303 c046a42c-6fe2-441c-8c8c-71466251a162 --- target-i386/exec.h | 5 +++-- target-i386/op_helper.c | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'target-i386') diff --git a/target-i386/exec.h b/target-i386/exec.h index 284f7b0f3b..268982381d 100644 --- a/target-i386/exec.h +++ b/target-i386/exec.h @@ -31,6 +31,7 @@ register struct CPUX86State *env asm(AREG0); +#include "qemu-common.h" #include "qemu-log.h" #define EAX (env->regs[R_EAX]) @@ -62,8 +63,8 @@ void do_interrupt(int intno, int is_int, int error_code, target_ulong next_eip, int is_hw); void do_interrupt_user(int intno, int is_int, int error_code, target_ulong next_eip); -void raise_exception_err(int exception_index, int error_code); -void raise_exception(int exception_index); +void noreturn raise_exception_err(int exception_index, int error_code); +void noreturn raise_exception(int exception_index); void do_smm_enter(void); /* n must be a constant to be efficient */ diff --git a/target-i386/op_helper.c b/target-i386/op_helper.c index 6e0e32e75b..a36c959a5b 100644 --- a/target-i386/op_helper.c +++ b/target-i386/op_helper.c @@ -1284,8 +1284,8 @@ static int check_exception(int intno, int *error_code) * EIP value AFTER the interrupt instruction. It is only relevant if * is_int is TRUE. */ -static void raise_interrupt(int intno, int is_int, int error_code, - int next_eip_addend) +static void noreturn raise_interrupt(int intno, int is_int, int error_code, + int next_eip_addend) { if (!is_int) { helper_svm_check_intercept_param(SVM_EXIT_EXCP_BASE + intno, error_code); -- cgit v1.2.3