[Bug c++/105956] New: internal compiler error: in iterative_hash_template_arg, at cp/pt.cc:1819
msc at linux dot ibm.com
gcc-bugzilla@gcc.gnu.org
Mon Jun 13 18:25:25 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105956
Bug ID: 105956
Summary: internal compiler error: in
iterative_hash_template_arg, at cp/pt.cc:1819
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: msc at linux dot ibm.com
Target Milestone: ---
Bumped into this error while compiling boost.fiber with upstream GCC:
$ git gcc-descr HEAD
r12-9379-g1158fe43407568
$ "/tmp/gcc-install/bin/gcc" -freport-bug -fvisibility-inlines-hidden -fPIC
-m64 -pthread -O0 -fno-inline -Wall -g -fvisibility=hidden
-DBOOST_ALL_NO_LIB=1 -DBOOST_CONTEXT_DYN_LINK=1 -DBOOST_FIBERS_DYN_LINK=1
-DBOOST_FIBERS_SOURCE -DBOOST_FILESYSTEM_DYN_LINK=1 -I"../../.." -c -o
"../../../bin.v2/libs/fiber/build/gcc-custom/debug/threading-multi/visibility-hidden/scheduler.o"
"../../../libs/fiber/src/scheduler.cpp"
In file included from ../../../boost/intrusive/options.hpp:19,
from ../../../boost/intrusive/list_hook.hpp:22,
from ../../../boost/intrusive/list.hpp:20,
from ../../../boost/fiber/scheduler.hpp:17,
from ../../../libs/fiber/src/scheduler.cpp:7:
../../../boost/intrusive/pack_options.hpp: In instantiation of ‘struct
boost::intrusive::invert_typelist_impl<boost::intrusive::typelist<boost::intrusive::slist_defaults,
boost::intrusive::member_hook<boost::fibers::waker_with_hook,
boost::intrusive::slist_member_hook<>,
&boost::fibers::waker_with_hook::waker_queue_hook_>,
boost::intrusive::constant_time_size<false>, boost::intrusive::cache_last<true>
>, boost::intrusive::index_tuple<0, 1, 2, 3> >’:
../../../boost/intrusive/pack_options.hpp:190:71: required from ‘struct
boost::intrusive::invert_typelist<boost::intrusive::typelist<boost::intrusive::slist_defaults,
boost::intrusive::member_hook<boost::fibers::waker_with_hook,
boost::intrusive::slist_member_hook<>,
&boost::fibers::waker_with_hook::waker_queue_hook_>,
boost::intrusive::constant_time_size<false>, boost::intrusive::cache_last<true>
> >’
../../../boost/intrusive/pack_options.hpp:230:55: required from ‘struct
boost::intrusive::pack_options<boost::intrusive::slist_defaults,
boost::intrusive::member_hook<boost::fibers::waker_with_hook,
boost::intrusive::slist_member_hook<>,
&boost::fibers::waker_with_hook::waker_queue_hook_>,
boost::intrusive::constant_time_size<false>, boost::intrusive::cache_last<true>
>’
../../../boost/intrusive/slist.hpp:2149:15: required from ‘struct
boost::intrusive::make_slist<boost::fibers::waker_with_hook,
boost::intrusive::member_hook<boost::fibers::waker_with_hook,
boost::intrusive::slist_member_hook<>,
&boost::fibers::waker_with_hook::waker_queue_hook_>,
boost::intrusive::constant_time_size<false>, boost::intrusive::cache_last<true>
>’
../../../boost/intrusive/slist.hpp:2173:7: required from ‘class
boost::intrusive::slist<boost::fibers::waker_with_hook,
boost::intrusive::member_hook<boost::fibers::waker_with_hook,
boost::intrusive::slist_member_hook<>,
&boost::fibers::waker_with_hook::waker_queue_hook_>,
boost::intrusive::constant_time_size<false>, boost::intrusive::cache_last<true>
>’
../../../boost/fiber/waker.hpp:73:36: required from here
../../../boost/intrusive/pack_options.hpp:164:29: internal compiler error: in
iterative_hash_template_arg, at cp/pt.cc:1819
164 | static const std::size_t last_idx = sizeof_typelist<Typelist>::value
- 1;
| ^~~~~~~~
0x6ec942 iterative_hash_template_arg(tree_node*, unsigned int)
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:1819
0xb105c5 iterative_hash_template_arg(tree_node*, unsigned int)
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:1829
0xb10fc8 hash_tmpl_and_args
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:1769
0xb10fc8 spec_hasher::hash(tree_node*, tree_node*)
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:1776
0xb3389b tsubst_decl
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:14991
0xb26d87 tsubst_copy
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:17066
0xb2a720 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:21390
0xb2a2f6 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:20434
0xb2bb15 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:20283
0xb35d08 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:19595
0xb4b4dc tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:13580
0xb54d8f tsubst_aggr_type
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:13796
0xb54d8f tsubst_aggr_type
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:13753
0xb49154 tsubst(tree_node*, tree_node*, int, tree_node*)
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:16282
0xb35497 gen_elem_of_pack_expansion_instantiation
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:12749
0xb35497 tsubst_pack_expansion(tree_node*, tree_node*, int, tree_node*)
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:13417
0xb4b6e2 tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:13566
0xb4b905 tsubst_argument_pack(tree_node*, tree_node*, int, tree_node*)
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:13517
0xb4b6b4 tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:13578
0xb54d8f tsubst_aggr_type
/home/mscastanho/dev/gcc/gcc/cp/pt.cc:13796
Please submit a full bug report, with preprocessed source.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
Preprocessed source stored into /tmp/ccVLIwjb.out file, please attach this to
your bugreport.
I'm not that familiar with the code to be able to create a smaller reproducer,
but I'm attaching the pre-processed source generated by -freport-bug.
I was able to reproduce this both on ppc64le and x86_64. GCC configured with:
<gcc-path>/configure --prefix=/tmp/gcc-install --enable-languages=c,c++
--disable-bootstrap --disable-multilib
After doing a quick bisect I suspect the issue was introduced by the following
commit:
commit cb7fd1ea85feea7ef65328330fc2577a95e99400
Author: Patrick Palka <ppalka@redhat.com>
Date: Fri Jun 10 16:09:48 2022 -0400
c++: optimize specialization of nested templated classes
More information about the Gcc-bugs
mailing list