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

            Bug ID: 126122
           Summary: internal compiler error: in get_callee_fndecl, at
                    tree.cc:8823
           Product: gcc
           Version: 16.1.1
            Status: UNCONFIRMED
          Keywords: c++-coroutines, ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: openanon at outlook dot com
  Target Milestone: ---
              Host: x86_64-pc-linux-gnu
            Target: x86_64-pc-linux-gnu
             Build: x86_64-pc-linux-gnu

Created attachment 64944
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=64944&action=edit
The preprocessed file which cause the crash

GCC crashed during the coroutine transformation where a custom coroutine_handle
has a non-trivial destructor.

1. gcc -v output:

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-g
nu/16.1.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /build/gcc/src/gcc/configure --en
able-languages=ada,c,c++,d,fortran,go,lto,m2,objc,
obj-c++,rust,cobol --enable-bootstrap --prefix=/us
r --libdir=/usr/lib --libexecdir=/usr/lib --mandir
=/usr/share/man --infodir=/usr/share/info --with-b
ugurl=https://gitlab.archlinux.org/archlinux/packa
ging/packages/gcc/-/issues --with-build-config=boo
tstrap-lto --with-linker-hash-style=gnu --with-sys
tem-zlib --enable-cet=auto --enable-checking=relea
se --enable-clocale=gnu --enable-default-pie --ena
ble-default-ssp --enable-gnu-indirect-function --e
nable-gnu-unique-object --enable-libstdcxx-backtra
ce --enable-link-serialization=1 --enable-linker-b
uild-id --enable-lto --enable-multilib --enable-pl
ugin --enable-shared --enable-threads=posix --disa
ble-libssp --disable-libstdcxx-pch --disable-werro
r --disable-fixincludes
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 16.1.1 20260430 (GCC)

2. Command line used to run g++:

g++ repro.cpp

3. Compiler error message:

repro.cpp: In function ‘void my_coroutine(_Z12my_c
oroutinev.Frame*)’:
repro.cpp:51:1: internal compiler error: in get_ca
llee_fndecl, at tree.cc:8823
   51 | }
      | ^
0x27e6438 diagnostics::context::diagnostic_impl(ri
ch_location*, diagnostics::metadata const*, diagno
stics::option_id, char const*, __va_list_tag (*) [
1], diagnostics::kind)
        ???:0
0x27e8a47 internal_error(char const*, ...)
        ???:0
0x737816 fancy_abort(char const*, int, char const*
)
        ???:0
0x15333c9 walk_tree_1(tree_node**, tree_node* (*)(
tree_node**, int*, void*), void*, hash_set<tree_no
de*, false, default_hash_traits<tree_node*> >*, tr
ee_node* (*)(tree_node**, int*, tree_node* (*)(tre
e_node**, int*, void*), void*, hash_set<tree_node*
, false, default_hash_traits<tree_node*> >*))
        ???:0
0x1533864 walk_tree_1(tree_node**, tree_node* (*)(
tree_node**, int*, void*), void*, hash_set<tree_no
de*, false, default_hash_traits<tree_node*> >*, tr
ee_node* (*)(tree_node**, int*, tree_node* (*)(tre
e_node**, int*, void*), void*, hash_set<tree_node*
, false, default_hash_traits<tree_node*> >*))
        ???:0
0x15333c9 walk_tree_1(tree_node**, tree_node* (*)(
tree_node**, int*, void*), void*, hash_set<tree_no
de*, false, default_hash_traits<tree_node*> >*, tr
ee_node* (*)(tree_node**, int*, tree_node* (*)(tre
e_node**, int*, void*), void*, hash_set<tree_node*
, false, default_hash_traits<tree_node*> >*))
        ???:0
0x15333c9 walk_tree_1(tree_node**, tree_node* (*)(
tree_node**, int*, void*), void*, hash_set<tree_no
de*, false, default_hash_traits<tree_node*> >*, tr
ee_node* (*)(tree_node**, int*, tree_node* (*)(tre
e_node**, int*, void*), void*, hash_set<tree_node*
, false, default_hash_traits<tree_node*> >*))
        ???:0
0x15333c9 walk_tree_1(tree_node**, tree_node* (*)(
tree_node**, int*, void*), void*, hash_set<tree_no
de*, false, default_hash_traits<tree_node*> >*, tr
ee_node* (*)(tree_node**, int*, tree_node* (*)(tre
e_node**, int*, void*), void*, hash_set<tree_node*
, false, default_hash_traits<tree_node*> >*))
        ???:0
0x1533864 walk_tree_1(tree_node**, tree_node* (*)(
tree_node**, int*, void*), void*, hash_set<tree_no
de*, false, default_hash_traits<tree_node*> >*, tr
ee_node* (*)(tree_node**, int*, tree_node* (*)(tre
e_node**, int*, void*), void*, hash_set<tree_node*
, false, default_hash_traits<tree_node*> >*))
        ???:0
0x15333c9 walk_tree_1(tree_node**, tree_node* (*)(
tree_node**, int*, void*), void*, hash_set<tree_no
de*, false, default_hash_traits<tree_node*> >*, tr
ee_node* (*)(tree_node**, int*, tree_node* (*)(tre
e_node**, int*, void*), void*, hash_set<tree_node*
, false, default_hash_traits<tree_node*> >*))
        ???:0
0x15333c9 walk_tree_1(tree_node**, tree_node* (*)(
tree_node**, int*, void*), void*, hash_set<tree_no
de*, false, default_hash_traits<tree_node*> >*, tr
ee_node* (*)(tree_node**, int*, tree_node* (*)(tre
e_node**, int*, void*), void*, hash_set<tree_node*
, false, default_hash_traits<tree_node*> >*))
        ???:0
0x7c7eb1 cp_coroutine_transform::finish_transforms
()
        ???:0
0x81d0bf finish_function(bool)
        ???:0
0xaaa200 c_common_parse_file()
        ???:0
/usr/lib/gcc/x86_64-pc-linux-gnu/16.1.1/cc1plus -q
uiet -D_GNU_SOURCE repro.cpp -quiet -dumpdir a- -d
umpbase repro.cpp -dumpbase-ext .cpp -mtune=generi
c -march=x86-64 -o /tmp/ccqN49gd.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://gitlab.archlinux.org/archlinux/packag
ing/packages/gcc/-/issues> for instructions.

4. The preprocessed source code (with --save-temps) are attached as a-repro.ii

Reply via email to