bison-patches
[Top][All Lists]
Advanced

[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)]])[
     {




reply via email to

[Prev in Thread] Current Thread [Next in Thread]