qemu/compiler: Define QEMU_ARTIFICIAL
authorRichard Henderson <rth@twiddle.net>
Tue, 16 Sep 2014 16:47:32 +0000 (09:47 -0700)
committerRichard Henderson <rth@redhat.com>
Mon, 29 Sep 2014 18:55:28 +0000 (14:55 -0400)
The combination of always_inline + artificial allows tiny inline
functions to be written that do not interfere with debugging.
In particular, gdb will not step into an artificial function.

The always_inline attribute was introduced in gcc 4.2,
and the artificial attribute was introduced in gcc 4.3.

Signed-off-by: Richard Henderson <rth@twiddle.net>
include/qemu/compiler.h

index 155b358..ac7c4c4 100644 (file)
 #define QEMU_WARN_UNUSED_RESULT
 #endif
 
+#if QEMU_GNUC_PREREQ(4, 3)
+#define QEMU_ARTIFICIAL __attribute__((always_inline, artificial))
+#else
+#define QEMU_ARTIFICIAL
+#endif
+
 #if defined(_WIN32)
 # define QEMU_PACKED __attribute__((gcc_struct, packed))
 #else