include/qemu/lockable: Use _Generic instead of QEMU_GENERIC
commit23c9b7e0f3ddc727fc664b616a3d73a24adef9d0
authorRichard Henderson <richard.henderson@linaro.org>
Mon, 14 Jun 2021 23:31:41 +0000 (14 16:31 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 16 Jun 2021 13:03:26 +0000 (16 15:03 +0200)
tree69a84e9ee09684ece044490ca5b19d70574878bd
parentdc41737844dbec4736855e128dce0da20c082f65
include/qemu/lockable: Use _Generic instead of QEMU_GENERIC

This is both more and less complicated than our expansion
using __builtin_choose_expr and __builtin_types_compatible_p.

The expansion through QEMU_MAKE_LOCKABLE_ doesn't work because
we're not emumerating all of the types within the same _Generic,
which results in errors about unhandled cases.  We must also
handle void* explicitly, so that the NULL constant can be used.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210614233143.1221879-7-richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
include/qemu/lockable.h