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.

Reply via email to