https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89083
Bug ID: 89083 Summary: [9 Regression] ICE in reshape_init_r, at cp/decl.c:6172 Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- g++-9.0.0-alpha20190127 snapshot (r268327) ICEs when compiling the following testcase extracted from test/CodeGenCXX/mangle-exprs.cpp from the clang 7.0.1. testsuite: struct A { int x[3]; }; template<class T> decltype(A{1,2},T()) fA1(T t) { return t; } void f() { fA1(1); } % g++-9.0.0-alpha20190127 -c surhyc2s.cpp surhyc2s.cpp: In substitution of 'template<class T> decltype ((A{int [3]{1, 2}}, T())) fA1(T) [with T = int]': surhyc2s.cpp:3:17: required from here surhyc2s.cpp:2:28: internal compiler error: in reshape_init_r, at cp/decl.c:6172 2 | template<class T> decltype(A{1,2},T()) fA1(T t) { return t; } | ^~~~~~ 0x5e629c reshape_init_r /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/decl.c:6172 0x8fb77b reshape_init_class /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/decl.c:5950 0x8fb77b reshape_init_r /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/decl.c:6185 0x8fb0f6 reshape_init(tree_node*, tree_node*, int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/decl.c:6245 0xa299ae finish_compound_literal(tree_node*, tree_node*, int, fcl_t) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/semantics.c:2827 0x9e849d tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/pt.c:19230 0x9e7c6e tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/pt.c:19355 0x9e8311 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/pt.c:18569 0x9f651c tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/pt.c:14991 0x9f651c tsubst(tree_node*, tree_node*, int, tree_node*) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/pt.c:14991 0x9fbe94 tsubst_function_type /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/pt.c:14045 0x9f6822 tsubst(tree_node*, tree_node*, int, tree_node*) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/pt.c:14815 0x9ebab5 tsubst_function_decl /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/pt.c:12948 0x9ecee7 tsubst_decl /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/pt.c:13358 0x9f6fdf tsubst(tree_node*, tree_node*, int, tree_node*) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/pt.c:14258 0x9f5911 instantiate_template_1 /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/pt.c:19637 0x9f5911 instantiate_template(tree_node*, tree_node*, int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/pt.c:19693 0xa0d76f fn_type_unification(tree_node*, tree_node*, tree_node*, tree_node* const*, unsigned int, tree_node*, unification_kind_t, int, conversion**, bool, bool) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/pt.c:20127 0x89dbef add_template_candidate_real /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/call.c:3247 0x89e5f6 add_template_candidate /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190127/work/gcc-9-20190127/gcc/cp/call.c:3332 I believe it is not a duplicate of PR80864.