diff options
author | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2009-01-14 19:00:36 +0000 |
---|---|---|
committer | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2009-01-14 19:00:36 +0000 |
commit | cf25cfa8485a9e0a255946ce019e3c5f04eb7726 (patch) | |
tree | e52f08091024cbbcdf4c08810d76ca27d1b808cb /target-i386 | |
parent | b9652aac5385903acbbc31b9b0c602e54c03cfab (diff) | |
download | qemu-cf25cfa8485a9e0a255946ce019e3c5f04eb7726.tar.gz qemu-cf25cfa8485a9e0a255946ce019e3c5f04eb7726.tar.bz2 qemu-cf25cfa8485a9e0a255946ce019e3c5f04eb7726.zip |
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 <jan.kiszka@siemens.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6303 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-i386')
-rw-r--r-- | target-i386/exec.h | 5 | ||||
-rw-r--r-- | target-i386/op_helper.c | 4 |
2 files changed, 5 insertions, 4 deletions
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); |