提交 a5e50b26 编写于 作者: M malc

Replace noreturn with QEMU_NORETURN

Thanks to Robert Riebisch for analysis [1]

[1] http://marc.info/?l=qemu-devel&m=123352293319271&w=2

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6492 c046a42c-6fe2-441c-8c8c-71466251a162
上级 173a543b
...@@ -753,7 +753,7 @@ void cpu_dump_statistics (CPUState *env, FILE *f, ...@@ -753,7 +753,7 @@ void cpu_dump_statistics (CPUState *env, FILE *f,
int (*cpu_fprintf)(FILE *f, const char *fmt, ...), int (*cpu_fprintf)(FILE *f, const char *fmt, ...),
int flags); int flags);
void noreturn cpu_abort(CPUState *env, const char *fmt, ...) void QEMU_NORETURN cpu_abort(CPUState *env, const char *fmt, ...)
__attribute__ ((__format__ (__printf__, 2, 3))); __attribute__ ((__format__ (__printf__, 2, 3)));
extern CPUState *first_cpu; extern CPUState *first_cpu;
extern CPUState *cpu_single_env; extern CPUState *cpu_single_env;
......
...@@ -133,7 +133,7 @@ static inline void free_sigqueue(struct sigqueue *q) ...@@ -133,7 +133,7 @@ static inline void free_sigqueue(struct sigqueue *q)
} }
/* abort execution with signal */ /* abort execution with signal */
void noreturn force_sig(int sig) void QEMU_NORETURN force_sig(int sig)
{ {
int host_sig; int host_sig;
host_sig = target_to_host_signal(sig); host_sig = target_to_host_signal(sig);
......
...@@ -85,7 +85,7 @@ TranslationBlock *tb_gen_code(CPUState *env, ...@@ -85,7 +85,7 @@ TranslationBlock *tb_gen_code(CPUState *env,
target_ulong pc, target_ulong cs_base, int flags, target_ulong pc, target_ulong cs_base, int flags,
int cflags); int cflags);
void cpu_exec_init(CPUState *env); void cpu_exec_init(CPUState *env);
void noreturn cpu_loop_exit(void); void QEMU_NORETURN cpu_loop_exit(void);
int page_unprotect(target_ulong address, unsigned long pc, void *puc); int page_unprotect(target_ulong address, unsigned long pc, void *puc);
void tb_invalidate_phys_page_range(target_phys_addr_t start, target_phys_addr_t end, void tb_invalidate_phys_page_range(target_phys_addr_t start, target_phys_addr_t end,
int is_cpu_write_access); int is_cpu_write_access);
......
...@@ -349,7 +349,7 @@ static inline void free_sigqueue(CPUState *env, struct sigqueue *q) ...@@ -349,7 +349,7 @@ static inline void free_sigqueue(CPUState *env, struct sigqueue *q)
} }
/* abort execution with signal */ /* abort execution with signal */
static void noreturn force_sig(int sig) static void QEMU_NORETURN force_sig(int sig)
{ {
int host_sig; int host_sig;
host_sig = target_to_host_signal(sig); host_sig = target_to_host_signal(sig);
......
...@@ -8,9 +8,9 @@ ...@@ -8,9 +8,9 @@
#include <windows.h> #include <windows.h>
#endif #endif
#define noreturn __attribute__ ((__noreturn__)) #define QEMU_NORETURN __attribute__ ((__noreturn__))
/* Hack around the mess dyngen-exec.h causes: We need noreturn in files that /* Hack around the mess dyngen-exec.h causes: We need QEMU_NORETURN in files that
cannot include the following headers without conflicts. This condition has cannot include the following headers without conflicts. This condition has
to be removed once dyngen is gone. */ to be removed once dyngen is gone. */
#ifndef __DYNGEN_EXEC_H__ #ifndef __DYNGEN_EXEC_H__
...@@ -144,7 +144,7 @@ void *get_mmap_addr(unsigned long size); ...@@ -144,7 +144,7 @@ void *get_mmap_addr(unsigned long size);
/* Error handling. */ /* Error handling. */
void noreturn hw_error(const char *fmt, ...) void QEMU_NORETURN hw_error(const char *fmt, ...)
__attribute__ ((__format__ (__printf__, 1, 2))); __attribute__ ((__format__ (__printf__, 1, 2)));
/* IO callbacks. */ /* IO callbacks. */
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
/* Default to cache=writeback as data integrity is not important for qemu-tcg. */ /* Default to cache=writeback as data integrity is not important for qemu-tcg. */
#define BRDV_O_FLAGS BDRV_O_CACHE_WB #define BRDV_O_FLAGS BDRV_O_CACHE_WB
static void noreturn error(const char *fmt, ...) static void QEMU_NORETURN error(const char *fmt, ...)
{ {
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
......
...@@ -63,8 +63,8 @@ void do_interrupt(int intno, int is_int, int error_code, ...@@ -63,8 +63,8 @@ void do_interrupt(int intno, int is_int, int error_code,
target_ulong next_eip, int is_hw); target_ulong next_eip, int is_hw);
void do_interrupt_user(int intno, int is_int, int error_code, void do_interrupt_user(int intno, int is_int, int error_code,
target_ulong next_eip); target_ulong next_eip);
void noreturn raise_exception_err(int exception_index, int error_code); void QEMU_NORETURN raise_exception_err(int exception_index, int error_code);
void noreturn raise_exception(int exception_index); void QEMU_NORETURN raise_exception(int exception_index);
void do_smm_enter(void); void do_smm_enter(void);
/* n must be a constant to be efficient */ /* n must be a constant to be efficient */
......
...@@ -1303,8 +1303,8 @@ static int check_exception(int intno, int *error_code) ...@@ -1303,8 +1303,8 @@ static int check_exception(int intno, int *error_code)
* EIP value AFTER the interrupt instruction. It is only relevant if * EIP value AFTER the interrupt instruction. It is only relevant if
* is_int is TRUE. * is_int is TRUE.
*/ */
static void noreturn raise_interrupt(int intno, int is_int, int error_code, static void QEMU_NORETURN raise_interrupt(int intno, int is_int, int error_code,
int next_eip_addend) int next_eip_addend)
{ {
if (!is_int) { if (!is_int) {
helper_svm_check_intercept_param(SVM_EXIT_EXCP_BASE + intno, error_code); helper_svm_check_intercept_param(SVM_EXIT_EXCP_BASE + intno, error_code);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册