compiler: introduce QEMU_ANNOTATE

Allow a more shorter syntax when defining wrapper macros for
__attribute__((annotate(...))).

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2022-12-16 12:53:44 +01:00
parent e2dbca0337
commit d79b9202e4
2 changed files with 9 additions and 3 deletions

View File

@ -197,4 +197,10 @@
#define BUILTIN_SUBCLL_BROKEN #define BUILTIN_SUBCLL_BROKEN
#endif #endif
#if __has_attribute(annotate)
#define QEMU_ANNOTATE(x) __attribute__((annotate(x)))
#else
#define QEMU_ANNOTATE(x)
#endif
#endif /* COMPILER_H */ #endif /* COMPILER_H */

View File

@ -185,7 +185,7 @@ extern "C" {
* } * }
*/ */
#ifdef __clang__ #ifdef __clang__
#define coroutine_fn __attribute__((__annotate__("coroutine_fn"))) #define coroutine_fn QEMU_ANNOTATE("coroutine_fn")
#else #else
#define coroutine_fn #define coroutine_fn
#endif #endif
@ -195,7 +195,7 @@ extern "C" {
* but can handle running in non-coroutine context too. * but can handle running in non-coroutine context too.
*/ */
#ifdef __clang__ #ifdef __clang__
#define coroutine_mixed_fn __attribute__((__annotate__("coroutine_mixed_fn"))) #define coroutine_mixed_fn QEMU_ANNOTATE("coroutine_mixed_fn")
#else #else
#define coroutine_mixed_fn #define coroutine_mixed_fn
#endif #endif
@ -224,7 +224,7 @@ extern "C" {
* } * }
*/ */
#ifdef __clang__ #ifdef __clang__
#define no_coroutine_fn __attribute__((__annotate__("no_coroutine_fn"))) #define no_coroutine_fn QEMU_ANNOTATE("no_coroutine_fn")
#else #else
#define no_coroutine_fn #define no_coroutine_fn
#endif #endif