https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88028
Bug ID: 88028 Summary: internal compiler error: in reshape_init_r, at cp/decl.c:6159 Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: mpolacek at gcc dot gnu.org Target Milestone: --- template <bool, typename T> using b = T; template <typename T, int N> struct g { typedef T d[N]; }; template <typename T, int c> struct A { typename g<T, c>::d e; }; template <typename T> A(T)->A<b<0, T>, 1>; struct S {}; template <typename> struct R { static constexpr auto h = A{S{}}; }; using U = R<int>; void fn () { const A<S, 1> foo = U::h; } $ ./cc1plus -quiet x.C -std=c++17 x.C: In instantiation of ‘constexpr const A<S, 1> R<int>::h’: x.C:23:26: required from here x.C:16:34: internal compiler error: in reshape_init_r, at cp/decl.c:6159 16 | struct R { static constexpr auto h = A{S{}}; }; | ^ 0x90b2d0 reshape_init_r /home/mpolacek/src/gcc/gcc/cp/decl.c:6159 0x90a65b reshape_init_class /home/mpolacek/src/gcc/gcc/cp/decl.c:5941 0x90b37d reshape_init_r /home/mpolacek/src/gcc/gcc/cp/decl.c:6172 0x90b608 reshape_init(tree_node*, tree_node*, int) /home/mpolacek/src/gcc/gcc/cp/decl.c:6232 0xb009fa finish_compound_literal(tree_node*, tree_node*, int, fcl_t) /home/mpolacek/src/gcc/gcc/cp/semantics.c:2821 0xab071a tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) /home/mpolacek/src/gcc/gcc/cp/pt.c:19190 0xaa9689 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /home/mpolacek/src/gcc/gcc/cp/pt.c:17739 0xac3b9b regenerate_decl_from_template /home/mpolacek/src/gcc/gcc/cp/pt.c:23870 0xac6759 instantiate_decl(tree_node*, bool, bool) /home/mpolacek/src/gcc/gcc/cp/pt.c:24364 0x950343 maybe_instantiate_decl /home/mpolacek/src/gcc/gcc/cp/decl2.c:5247 0x950f9b mark_used(tree_node*, int) /home/mpolacek/src/gcc/gcc/cp/decl2.c:5398 0x95198b mark_used(tree_node*) /home/mpolacek/src/gcc/gcc/cp/decl2.c:5514 0xb04e21 finish_id_expression(tree_node*, tree_node*, tree_node*, cp_id_kind*, bool, bool, bool*, bool, bool, bool, bool, char const**, unsigned int) /home/mpolacek/src/gcc/gcc/cp/semantics.c:3716 0x9f8c57 cp_parser_primary_expression /home/mpolacek/src/gcc/gcc/cp/parser.c:5698 0x9fc1c1 cp_parser_postfix_expression /home/mpolacek/src/gcc/gcc/cp/parser.c:7102 0x9ff6f9 cp_parser_unary_expression /home/mpolacek/src/gcc/gcc/cp/parser.c:8382 0xa00801 cp_parser_cast_expression /home/mpolacek/src/gcc/gcc/cp/parser.c:9150 0xa008f4 cp_parser_binary_expression /home/mpolacek/src/gcc/gcc/cp/parser.c:9252 0xa016ff cp_parser_assignment_expression /home/mpolacek/src/gcc/gcc/cp/parser.c:9548 0xa01efd cp_parser_constant_expression /home/mpolacek/src/gcc/gcc/cp/parser.c:9830 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.