Now that we assume gcc 7.5 as a minimum, we have the option of changing to a newer C standard. The two major new features that I think apply are _Generic and _Static_assert.
While Paolo created a remarkably functional replacement for _Generic using builtins, the error messages that you get out of the keyword are *vastly* more intelligable, and the syntax is easier to read. While I'd like to prefer _Static_assert over QEMU_BUILD_BUG_ON going forward, and would like to convert existing uses, that is a much bigger job. Especially since the test condition is inverted. In the meantime, can drop the configure detection. Changes for v2: * Remove QEMU_LOCK_FUNC and QEMU_UNLOCK_FUNC as unused. r~ Richard Henderson (8): configure: Use -std=gnu11 softfloat: Use _Generic instead of QEMU_GENERIC util: Use real functions for thread-posix QemuRecMutex util: Pass file+line to qemu_rec_mutex_unlock_impl util: Use unique type for QemuRecMutex in thread-posix.h include/qemu/lockable: Use _Generic instead of QEMU_GENERIC qemu/compiler: Remove QEMU_GENERIC configure: Remove probe for _Static_assert configure | 22 +-------- meson.build | 2 +- include/qemu/compiler.h | 51 --------------------- include/qemu/lockable.h | 90 +++++++++++++++++-------------------- include/qemu/thread-posix.h | 14 +++--- include/qemu/thread-win32.h | 6 --- include/qemu/thread.h | 15 ++++++- fpu/softfloat.c | 16 ++++--- util/qemu-thread-posix.c | 24 +++++++++- util/qemu-thread-win32.c | 2 +- 10 files changed, 98 insertions(+), 144 deletions(-) -- 2.25.1