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 | 7d99a001df854ef950a128000cbd982c4f6cd616 (patch) | |
tree | e52f08091024cbbcdf4c08810d76ca27d1b808cb /target-i386 | |
parent | fdf7ed965281f7d68029580f6a652fa918018dbf (diff) | |
download | qemu-7d99a001df854ef950a128000cbd982c4f6cd616.zip qemu-7d99a001df854ef950a128000cbd982c4f6cd616.tar.gz qemu-7d99a001df854ef950a128000cbd982c4f6cd616.tar.bz2 |
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 284f7b0..2689823 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 6e0e32e..a36c959 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); |