summaryrefslogtreecommitdiff
path: root/target-i386
diff options
context:
space:
mode:
authorblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2009-01-14 19:00:36 +0000
committerblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2009-01-14 19:00:36 +0000
commitcf25cfa8485a9e0a255946ce019e3c5f04eb7726 (patch)
treee52f08091024cbbcdf4c08810d76ca27d1b808cb /target-i386
parentb9652aac5385903acbbc31b9b0c602e54c03cfab (diff)
downloadqemu-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.h5
-rw-r--r--target-i386/op_helper.c4
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);