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


Reply via email to