https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127450

            Bug ID: 127450
           Summary: internal compiler error: in check_noexcept_r
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: 0599jiangyc at gmail dot com
  Target Milestone: ---

The following code:

```cpp
bool check (bool b) { return b; }
class S
{
  auto f ()
    post (r: check (r))
  { return e; }
};
```

Resulted in this output:
```
/tmp/test.cc: In member function 'auto S::f()':
/tmp/test.cc:6:12: error: 'e' was not declared in this scope
    6 |   { return e; }
      |            ^
/tmp/test.cc:6:15: internal compiler error: in check_noexcept_r, at
cp/except.cc:1063
    6 |   { return e; }
      |               ^
0x3046dcb internal_error(char const*, ...)
       
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/diagnostic-global-context.cc:787
0xdd9a1e fancy_abort(char const*, int, char const*)
       
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/diagnostics/context.cc:1813
0x8047c6 check_noexcept_r
       
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/cp/except.cc:1063
0x1c31643 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*,
tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*))
        /home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/tree.cc:11868
0x1c35347 walk_tree_without_duplicates_1(tree_node**, tree_node*
(*)(tree_node**, int*, void*), void*, tree_node* (*)(tree_node**, int*,
tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false,
default_hash_traits<tree_node*> >*))
        /home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/tree.cc:12131
0xf0bcf3 expr_noexcept_p(tree_node*, int)
       
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/cp/except.cc:1168
0xe963d1 build_contract_check(tree_node*)
       
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/cp/contracts.cc:2968
0xe7cb1f cp_genericize_r
       
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/cp/cp-gimplify.cc:2188
0x1c31643 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*,
tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*))
        /home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/tree.cc:11868
0x1c31885 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*,
tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*))
        /home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/tree.cc:12105
0xe7b871 cp_genericize_tree
       
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/cp/cp-gimplify.cc:2626
0xe7bc08 cp_genericize(tree_node*)
       
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/cp/cp-gimplify.cc:2768
0xed6897 finish_function(bool)
       
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/cp/decl.cc:20982
0xfe0b46 cp_parser_function_definition_after_declarator
       
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/cp/parser.cc:36367
0xfe100c cp_parser_late_parsing_for_member
       
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/cp/parser.cc:37247
0xfe224b cp_parser_class_specifier
       
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/cp/parser.cc:30300
0xfe274f cp_parser_type_specifier
       
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/cp/parser.cc:22507
0xfff5e4 cp_parser_decl_specifier_seq
       
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/cp/parser.cc:18986
0x10124af cp_parser_simple_declaration
       
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/cp/parser.cc:18086
0x10221cf cp_parser_declaration
       
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-src/gcc/cp/parser.cc:17744
/home/fuzz/WorkSpace/fusion-fuzz/projects/gcc/gcc-install/libexec/gcc/x86_64-pc-linux-gnu/17.0.0/cc1plus
-quiet -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /tmp/test.cc -quiet -dumpdir
a- -dumpbase test.cc -dumpbase-ext .cc -mtune=generic -march=x86-64 -Og
-ffast-math -fno-strict-aliasing -fcontracts -o /tmp/cct6ynpn.s
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
```

To reproduce: `g++ -Og -ffast-math -fno-strict-aliasing -fcontracts ./test.cc`

*This bug was found by
[fusion-fuzz](https://github.com/fusion-fuzz/fusion-fuzz)*
  • [Bug c++/127450] New: internal c... 0599jiangyc at gmail dot com via Gcc-bugs

Reply via email to