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.

Reply via email to