+2023-01-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ snippet/_Noreturn: work around Clang _Noreturn bug
+ This is a bigger-hammer workaround for the clang _Noreturn issue
+ fix for dfa.c on 2023-01-01. Unfortunately, it causes 270
+ -Wreturn-type and -Wsometimes-uninitialized warnings when building
+ bleeding-edge GNU Emacs from Git on Fedora 37 with plain
+ ‘./configure && make’. So the workaround is enabled only if you
+ compile with -D_GL_WORK_AROUND_LLVM_BUG_59792.
+ * lib/_Noreturn.h (_Noreturn):
+ * m4/gnulib-common.m4 (gl_COMMON_BODY):
+ #define _Noreturn to be empty if it is Clang 15 or earlier,
+ and if _GL_WORK_AROUND_LLVM_BUG_59792 is defined.
+
2023-01-17 Bruno Haible <bruno@clisp.org>
execute tests: Avoid test failure with GNU make 4.4.
AIX system header files and several gnulib header files use precisely
this syntax with 'extern'. */
# define _Noreturn [[noreturn]]
+# elif (defined __clang__ && __clang_major__ < 16 \
+ && defined _GL_WORK_AROUND_LLVM_BUG_59792)
+ /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around
+ that rare LLVM bug, though you may get many false-alarm warnings. */
+# define _Noreturn
# elif ((!defined __cplusplus || defined __clang__) \
&& (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
|| (!defined __STRICT_ANSI__ \
AIX system header files and several gnulib header files use precisely
this syntax with 'extern'. */
# define _Noreturn [[noreturn]]
+# elif (defined __clang__ && __clang_major__ < 16 \
+ && defined _GL_WORK_AROUND_LLVM_BUG_59792)
+ /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around
+ that rare LLVM bug, though you may get many false-alarm warnings. */
+# define _Noreturn
# elif ((!defined __cplusplus || defined __clang__) \
&& (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
|| (!defined __STRICT_ANSI__ \