diff --git a/cpu-all.h b/cpu-all.h
index 3869bfd..56a768a 100644
--- a/cpu-all.h
+++ b/cpu-all.h
@@ -753,7 +753,7 @@
                           int (*cpu_fprintf)(FILE *f, const char *fmt, ...),
                           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)));
 extern CPUState *first_cpu;
 extern CPUState *cpu_single_env;
diff --git a/darwin-user/signal.c b/darwin-user/signal.c
index d321425..ba41c2e 100644
--- a/darwin-user/signal.c
+++ b/darwin-user/signal.c
@@ -133,7 +133,7 @@
 }
 
 /* abort execution with signal */
-void noreturn force_sig(int sig)
+void QEMU_NORETURN force_sig(int sig)
 {
     int host_sig;
     host_sig = target_to_host_signal(sig);
diff --git a/exec-all.h b/exec-all.h
index 1b28bbc..88f0321 100644
--- a/exec-all.h
+++ b/exec-all.h
@@ -85,7 +85,7 @@
                               target_ulong pc, target_ulong cs_base, int flags,
                               int cflags);
 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);
 void tb_invalidate_phys_page_range(target_phys_addr_t start, target_phys_addr_t end,
                                    int is_cpu_write_access);
diff --git a/linux-user/signal.c b/linux-user/signal.c
index b7f6f9c..4f3741e 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -349,7 +349,7 @@
 }
 
 /* abort execution with signal */
-static void noreturn force_sig(int sig)
+static void QEMU_NORETURN force_sig(int sig)
 {
     int host_sig;
     host_sig = target_to_host_signal(sig);
diff --git a/qemu-common.h b/qemu-common.h
index 42d5e49..8aef558 100644
--- a/qemu-common.h
+++ b/qemu-common.h
@@ -8,9 +8,9 @@
 #include <windows.h>
 #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
    to be removed once dyngen is gone. */
 #ifndef __DYNGEN_EXEC_H__
@@ -144,7 +144,7 @@
 
 /* Error handling.  */
 
-void noreturn hw_error(const char *fmt, ...)
+void QEMU_NORETURN hw_error(const char *fmt, ...)
     __attribute__ ((__format__ (__printf__, 1, 2)));
 
 /* IO callbacks.  */
diff --git a/qemu-img.c b/qemu-img.c
index 6b852fb..0bcbada 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -34,7 +34,7 @@
 /* Default to cache=writeback as data integrity is not important for qemu-tcg. */
 #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_start(ap, fmt);
diff --git a/target-i386/exec.h b/target-i386/exec.h
index 2689823..b51667a 100644
--- a/target-i386/exec.h
+++ b/target-i386/exec.h
@@ -63,8 +63,8 @@
                   target_ulong next_eip, int is_hw);
 void do_interrupt_user(int intno, int is_int, int error_code,
                        target_ulong next_eip);
-void noreturn raise_exception_err(int exception_index, int error_code);
-void noreturn raise_exception(int exception_index);
+void QEMU_NORETURN raise_exception_err(int exception_index, int error_code);
+void QEMU_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 3b43b9e..c2eda86 100644
--- a/target-i386/op_helper.c
+++ b/target-i386/op_helper.c
@@ -1303,8 +1303,8 @@
  * EIP value AFTER the interrupt instruction. It is only relevant if
  * is_int is TRUE.
  */
-static void noreturn raise_interrupt(int intno, int is_int, int error_code,
-                                     int next_eip_addend)
+static void QEMU_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);
