Hi Akim, make check passed.
Regards, --- Kiyoshi ----- Original Message ----- > From: Akim Demaille <[email protected]> > To: Kiyoshi KANAZAWA <[email protected]> > Cc: Paul Eggert <[email protected]>; Bison Bugs <[email protected]> > Date: 2018/10/31, Wed 20:49 > Subject: Re: bison-3.2 make fails on Solaris 11.3 x86/64 > > > >> Le 31 oct. 2018 à 10:30, Kiyoshi KANAZAWA > <[email protected]> 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 <[email protected]> > 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 >
