https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90659

            Bug ID: 90659
           Summary: [9/10 Regression] ICE in tree_to_uhwi, at
                    tree.h:4352/7291
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gs...@t-online.de
  Target Milestone: ---

Changed between 20190224 and 20190303 :


$ cat z1.cc
template <typename T>
void foo (int n)
{
  T a[n];
  [=]{a;};
}
void bar ()
{
  foo <double>;
}


$ g++-10-20190526 -c z1.cc
z1.cc: In instantiation of 'void foo(int) [with T = double]':
z1.cc:9:15:   required from here
z1.cc:5:3: internal compiler error: in tree_to_uhwi, at tree.h:4352
    5 |   [=]{a;};
      |   ^~~~~~~
0x617f9c tree_to_uhwi(tree_node const*)
        ../../gcc/tree.h:4352
0x617f9c cxx_eval_vec_init_1
        ../../gcc/cp/constexpr.c:3126
0x610857 cxx_eval_vec_init
        ../../gcc/cp/constexpr.c:3221
0x610857 cxx_eval_constant_expression
        ../../gcc/cp/constexpr.c:4946
0x61392e cxx_eval_outermost_constant_expr
        ../../gcc/cp/constexpr.c:5328
0x61617c maybe_constant_init_1
        ../../gcc/cp/constexpr.c:5705
0x73f396 massage_init_elt
        ../../gcc/cp/typeck2.c:1348
0x73e666 process_init_constructor_record
        ../../gcc/cp/typeck2.c:1567
0x73e666 process_init_constructor
        ../../gcc/cp/typeck2.c:1841
0x73e666 digest_init_r
        ../../gcc/cp/typeck2.c:1239
0x708501 finish_compound_literal(tree_node*, tree_node*, int, fcl_t)
        ../../gcc/cp/semantics.c:2874
0x6695c4 build_lambda_object(tree_node*)
        ../../gcc/cp/lambda.c:117
0x6de512 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
        ../../gcc/cp/pt.c:19547
0x6e64c9 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
        ../../gcc/cp/pt.c:18247
0x6e64c9 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        ../../gcc/cp/pt.c:17923
0x6e5467 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        ../../gcc/cp/pt.c:17050
0x6e55f1 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        ../../gcc/cp/pt.c:17036
0x6e6151 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        ../../gcc/cp/pt.c:17330
0x6e4624 instantiate_decl(tree_node*, bool, bool)
        ../../gcc/cp/pt.c:24760
0x6f987b instantiate_pending_templates(int)
        ../../gcc/cp/pt.c:24876

Reply via email to