[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 7/8] qemu/compiler: Remove QEMU_GENERIC
From: |
Richard Henderson |
Subject: |
[PATCH v2 7/8] qemu/compiler: Remove QEMU_GENERIC |
Date: |
Mon, 14 Jun 2021 16:31:42 -0700 |
All previous users now use C11 _Generic.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
include/qemu/compiler.h | 40 ----------------------------------------
1 file changed, 40 deletions(-)
diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h
index 091c45248b..5766d61589 100644
--- a/include/qemu/compiler.h
+++ b/include/qemu/compiler.h
@@ -173,46 +173,6 @@
#define QEMU_ALWAYS_INLINE
#endif
-/* Implement C11 _Generic via GCC builtins. Example:
- *
- * QEMU_GENERIC(x, (float, sinf), (long double, sinl), sin) (x)
- *
- * The first argument is the discriminator. The last is the default value.
- * The middle ones are tuples in "(type, expansion)" format.
- */
-
-/* First, find out the number of generic cases. */
-#define QEMU_GENERIC(x, ...) \
- QEMU_GENERIC_(typeof(x), __VA_ARGS__, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
-
-/* There will be extra arguments, but they are not used. */
-#define QEMU_GENERIC_(x, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, count, ...) \
- QEMU_GENERIC##count(x, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)
-
-/* Two more helper macros, this time to extract items from a parenthesized
- * list.
- */
-#define QEMU_FIRST_(a, b) a
-#define QEMU_SECOND_(a, b) b
-
-/* ... and a final one for the common part of the "recursion". */
-#define QEMU_GENERIC_IF(x, type_then, else_)
\
- __builtin_choose_expr(__builtin_types_compatible_p(x,
\
- QEMU_FIRST_ type_then),
\
- QEMU_SECOND_ type_then, else_)
-
-/* CPP poor man's "recursion". */
-#define QEMU_GENERIC1(x, a0, ...) (a0)
-#define QEMU_GENERIC2(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC1(x,
__VA_ARGS__))
-#define QEMU_GENERIC3(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC2(x,
__VA_ARGS__))
-#define QEMU_GENERIC4(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC3(x,
__VA_ARGS__))
-#define QEMU_GENERIC5(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC4(x,
__VA_ARGS__))
-#define QEMU_GENERIC6(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC5(x,
__VA_ARGS__))
-#define QEMU_GENERIC7(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC6(x,
__VA_ARGS__))
-#define QEMU_GENERIC8(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC7(x,
__VA_ARGS__))
-#define QEMU_GENERIC9(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC8(x,
__VA_ARGS__))
-#define QEMU_GENERIC10(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC9(x,
__VA_ARGS__))
-
/**
* qemu_build_not_reached()
*
--
2.25.1
- Re: [PATCH v2 2/8] softfloat: Use _Generic instead of QEMU_GENERIC, (continued)
- [PATCH v2 3/8] util: Use real functions for thread-posix QemuRecMutex, Richard Henderson, 2021/06/14
- [PATCH v2 6/8] include/qemu/lockable: Use _Generic instead of QEMU_GENERIC, Richard Henderson, 2021/06/14
- [PATCH v2 4/8] util: Pass file+line to qemu_rec_mutex_unlock_impl, Richard Henderson, 2021/06/14
- [PATCH v2 7/8] qemu/compiler: Remove QEMU_GENERIC,
Richard Henderson <=
- [PATCH v2 8/8] configure: Remove probe for _Static_assert, Richard Henderson, 2021/06/14
- Re: [PATCH v2 0/8] configure: Change to -std=gnu11, no-reply, 2021/06/14
- Re: [PATCH v2 0/8] configure: Change to -std=gnu11, Paolo Bonzini, 2021/06/16