[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bison-3.2 make fails on Solaris 11.3 x86/64
From: |
Akim Demaille |
Subject: |
Re: bison-3.2 make fails on Solaris 11.3 x86/64 |
Date: |
Wed, 31 Oct 2018 12:49:04 +0100 |
> Le 31 oct. 2018 à 10:30, Kiyoshi KANAZAWA <address@hidden> a écrit :
>
> Hi,
>
> make test still fails.
Yes, of course. Sorry about that.
https://www.lrde.epita.fr/~akim/private/bison/bison-3.2.6-f8cad.tar.gz
https://www.lrde.epita.fr/~akim/private/bison/bison-3.2.6-f8cad.tar.zz
commit f8cadc731b0df0df9e93d009d5e96b0f752a9b3c
Author: Akim Demaille <address@hidden>
Date: Wed Oct 31 09:25:04 2018 +0100
c: provide a definition of _Noreturn that works for C++
On Solaris, GCC 7.3 defines:
-std=c++14 -std=c++17
__cplusplus 201402L 201703L
__STDC_VERSION__ 199901L 201112L
So the current #definition of _Noreturn sees that 201112 <=
__STDC_VERSION__, i.e., that C11 is supported, so it expects _Noreturn
to be supported. Apparently it is not.
This is only for C++, the test suite works for C. However, the test
suite does not try several C standards, maybe we should...
http://lists.gnu.org/archive/html/bug-bison/2018-10/msg00064.html
* data/c.m4 (b4_attribute_define): Define _Noreturn as [[noreturn]] in
modern C++.
diff --git a/data/c.m4 b/data/c.m4
index 04df3ffc..bb19b348 100644
--- a/data/c.m4
+++ b/data/c.m4
@@ -228,15 +228,18 @@ m4_define([b4_attribute_define],
#endif
]m4_bmatch([$1], [\bnoreturn\b], [[/* The _Noreturn keyword of C11. */
-#if ! (defined _Noreturn \
- || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
-# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
- || 0x5110 <= __SUNPRO_C)
-# define _Noreturn __attribute__ ((__noreturn__))
-# elif defined _MSC_VER && 1200 <= _MSC_VER
-# define _Noreturn __declspec (noreturn)
-# else
-# define _Noreturn
+#if ! defined _Noreturn
+# if defined __cplusplus && 201103L <= __cplusplus
+# define _Noreturn [[noreturn]]
+# elif !(defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)
+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
+ || 0x5110 <= __SUNPRO_C)
+# define _Noreturn __attribute__ ((__noreturn__))
+# elif defined _MSC_VER && 1200 <= _MSC_VER
+# define _Noreturn __declspec (noreturn)
+# else
+# define _Noreturn
+# endif
# endif
#endif
- Re: bison-3.2 make fails on Solaris 11.3 x86/64, (continued)
- Re: bison-3.2 make fails on Solaris 11.3 x86/64, Akim Demaille, 2018/10/30
- Re: bison-3.2 make fails on Solaris 11.3 x86/64, Kiyoshi KANAZAWA, 2018/10/30
- Re: bison-3.2 make fails on Solaris 11.3 x86/64, Akim Demaille, 2018/10/30
- Re: bison-3.2 make fails on Solaris 11.3 x86/64, Kiyoshi KANAZAWA, 2018/10/30
- Re: bison-3.2 make fails on Solaris 11.3 x86/64, Akim Demaille, 2018/10/31
- Re: bison-3.2 make fails on Solaris 11.3 x86/64, Kiyoshi KANAZAWA, 2018/10/31
- Re: bison-3.2 make fails on Solaris 11.3 x86/64, Akim Demaille, 2018/10/31
- Re: bison-3.2 make fails on Solaris 11.3 x86/64, Kiyoshi KANAZAWA, 2018/10/31
- Re: bison-3.2 make fails on Solaris 11.3 x86/64,
Akim Demaille <=
- Re: bison-3.2 make fails on Solaris 11.3 x86/64, Kiyoshi KANAZAWA, 2018/10/31