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

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2016-09-26
                 CC|                            |trippels at gcc dot gnu.org
     Ever confirmed|0                           |1
      Known to fail|                            |5.4.0, 6.2.0, 7.0

--- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Confirmed. All supported gcc versions are affected.

markus@x4 /tmp % cat ice.ii
struct A {
  A();
  A(const A &);
};
struct B {
  B();
  template <typename... Args> auto g(Args &&... p1) {
    return [=] { f(p1...); };
  }
  void f(A, const char *);
};
B::B() { g(A(), ""); }

markus@x4 /tmp % g++ -c ice.ii
ice.ii: In member function ‘auto B::g(Args&& ...) [with Args = {A, const char
(&)[1]}]’:
ice.ii:8:28: internal compiler error: in create_tmp_var, at gimple-expr.c:473
     return [=] { f(p1...); };
                            ^
0xafcb20 create_tmp_var(tree_node*, char const*)
        ../../gcc/gcc/gimple-expr.c:473
0xb2f384 create_tmp_from_val
        ../../gcc/gcc/gimplify.c:500
0xb2f384 lookup_tmp_var
        ../../gcc/gcc/gimplify.c:521
0xb2f384 internal_get_tmp_var
        ../../gcc/gcc/gimplify.c:574
0xb26cc1 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gcc/gimplify.c:11483
0xb2ab27 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gcc/gimplify.c:10701
0xb301a6 gimplify_compound_lval
        ../../gcc/gcc/gimplify.c:2195
0xb27165 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gcc/gimplify.c:10495
0xb3a6cf gimplify_modify_expr
        ../../gcc/gcc/gimplify.c:4824
0xb29008 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gcc/gimplify.c:10543
0xb2c407 gimplify_stmt(tree_node**, gimple**)
        ../../gcc/gcc/gimplify.c:5805
0xb2c5e8 gimplify_and_add(tree_node*, gimple**)
        ../../gcc/gcc/gimplify.c:427
0xb2c5e8 gimplify_init_ctor_eval
        ../../gcc/gcc/gimplify.c:3799
0xb32e9f gimplify_init_constructor
        ../../gcc/gcc/gimplify.c:4171
0xb33d17 gimplify_modify_expr_rhs
        ../../gcc/gcc/gimplify.c:4432
0xb3a4d0 gimplify_modify_expr
        ../../gcc/gcc/gimplify.c:4769
0xb29008 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gcc/gimplify.c:10543
0xb2c407 gimplify_stmt(tree_node**, gimple**)
        ../../gcc/gcc/gimplify.c:5805
0xb28116 gimplify_and_add(tree_node*, gimple**)
        ../../gcc/gcc/gimplify.c:427
0xb28116 gimplify_return_expr
        ../../gcc/gcc/gimplify.c:1371

Reply via email to