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