summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkim Demaille <akim.demaille@gmail.com>2021-01-12 06:28:13 +0100
committerAkim Demaille <akim.demaille@gmail.com>2021-01-23 09:24:01 +0100
commit1ac973aa568342700bfd404b41b6f0081d6a2a67 (patch)
tree47b691d602f8625ab086595e0b9dbffe5105e772
parent8358090292e21c61a583da542bad9099ad65f355 (diff)
downloadbison-1ac973aa568342700bfd404b41b6f0081d6a2a67.tar.gz
c: adjust _Noreturn to pedantic clang
Reported by Joe Nelson <joe@begriffs.com>. https://lists.gnu.org/r/help-bison/2021-01/msg00004.html Fixed by Paul Eggert in gnulib. https://lists.gnu.org/r/bug-gnulib/2021-01/msg00156.html * data/skeletons/c.m4 (b4_attribute_define): Adjust _Noreturn to pedantic clang.
-rw-r--r--data/skeletons/c.m416
1 files changed, 9 insertions, 7 deletions
diff --git a/data/skeletons/c.m4 b/data/skeletons/c.m4
index 14a16a9d..8c08b0a5 100644
--- a/data/skeletons/c.m4
+++ b/data/skeletons/c.m4
@@ -378,14 +378,16 @@ dnl use C' _Noreturn in C++, to avoid -Wc11-extensions warnings.
&& ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
|| (defined _MSC_VER && 1900 <= _MSC_VER)))
# define _Noreturn [[noreturn]]
-# elif (!defined __cplusplus \
- && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
- || 4 < __GNUC__ + (7 <= __GNUC_MINOR__) \
- || (defined __apple_build_version__ \
- ? 6000000 <= __apple_build_version__ \
- : 3 < __clang_major__ + (5 <= __clang_minor__))))
+# elif ((!defined __cplusplus || defined __clang__) \
+ && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
+ || (!defined __STRICT_ANSI__ \
+ && (__4 < __GNUC__ + (7 <= __GNUC_MINOR__) \
+ || (defined __apple_build_version__ \
+ ? 6000000 <= __apple_build_version__ \
+ : 3 < __clang_major__ + (5 <= __clang_minor__))))))
/* _Noreturn works as-is. */
-# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C
+# elif (2 < __GNUC__ + (8 <= __GNUC_MINOR__) || defined __clang__ \
+ || 0x5110 <= __SUNPRO_C)
# define _Noreturn __attribute__ ((__noreturn__))
# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0)
# define _Noreturn __declspec (noreturn)