[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problems testing Bison with GCC 12.1
From: |
Akim Demaille |
Subject: |
Re: Problems testing Bison with GCC 12.1 |
Date: |
Mon, 1 Aug 2022 08:08:07 +0200 |
> Le 1 août 2022 à 07:18, Akim Demaille <akim.demaille@gmail.com> a écrit :
>
>
>
>> Le 1 août 2022 à 07:02, Akim Demaille <akim.demaille@gmail.com> a écrit :
>>
>>> Many C++ tests (400-25, 440-53, 664-5, 667-76, 679-80, 682-3, 685-9, 692)
>>> fail with diagnostics like "noexcept-expression evaluates to 'false'
>>> because of a call to 'yy::parser::stack_symbol_type::stack_symbol_type()'
>>> [-Werror=noexcept]".
>>
>> I'll have a look at that.
>
> I'm installing this:
>
> commit 722070124e991ee93ec3ffbde631b5f3713cd9f0
> Author: Akim Demaille <akim.demaille@gmail.com>
> Date: Mon Aug 1 07:08:52 2022 +0200
>
> lalr1.cc: declare stack_symbol_type as noexcept
I'm adding that.
commit b7bdf78c1836dd103fed56105676ef8de3f33c45
Author: Akim Demaille <akim.demaille@gmail.com>
Date: Mon Aug 1 08:02:20 2022 +0200
glr2.cc: fix -Wnoexcept issues
440-453 and 685 failed with GCC 12.1:
```
test.cc:1814:21: required from here
/opt/local/include/gcc12/c++/bits/stl_construct.h:95:14: error:
noexcept-expression evaluates to 'false' because of a call to
'{anonymous}::glr_stack_item::glr_stack_item(bool)' [-Werror=noexcept]
95 | noexcept(noexcept(::new((void*)0)
_Tp(std::declval<_Args>()...)))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
test.cc:1486:5: note: but
'{anonymous}::glr_stack_item::glr_stack_item(bool)' does not throw; perhaps it
should be declared 'noexcept'
1486 | glr_stack_item (bool state = true)
| ^~~~~~~~~~~~~~
```
Reported by Paul Eggert.
<https://lists.gnu.org/r/bison-patches/2022-07/msg00008.html>
* data/skeletons/glr2.cc (glr_state, glr_stack_item): Declare the
default ctors noexcept.
diff --git a/data/skeletons/glr2.cc b/data/skeletons/glr2.cc
index 604de731..970ccfdf 100644
--- a/data/skeletons/glr2.cc
+++ b/data/skeletons/glr2.cc
@@ -818,7 +818,7 @@ namespace ]b4_namespace_ref[
class ]b4_parser_class[::glr_state
{
public:
- glr_state ()
+ glr_state () YY_NOEXCEPT
: yyresolved (false)
, yylrState (0)
, yyposn (0)
@@ -1410,7 +1410,7 @@ namespace
class glr_stack_item
{
public:
- glr_stack_item (bool state = true)
+ glr_stack_item (bool state = true) YY_NOEXCEPT
: is_state_ (state)]b4_parse_assert_if([[
, magic_ (MAGIC)]])[
{