https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67244
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2015-08-17 Known to work| |4.9.3 Host|OS X 10.10.2 | Summary|internal compiler error: in |[5/6 Regression] internal |gimplify_var_or_parm_decl, |compiler error: in |at gimplify.c:1801 |gimplify_var_or_parm_decl, | |at gimplify.c:1801 Ever confirmed|0 |1 Known to fail| |5.1.1, 6.0 Severity|major |normal --- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- Creduce came up with: markus@x4 tmp % cat Uni.ii class A { public: int operator*(); }; template <typename T, typename Predicate> void searchGen(int, int, T, Predicate p4) { p4(0); } template <typename...> struct B; template <typename MetaFunction, typename Type, typename... Types> struct B<MetaFunction, Type, Types...> { static void exec() { MetaFunction::template exec<Type>; } }; template <typename MetaFunction, typename... Types> void forEachType() { B<MetaFunction, Types...>::exec; } namespace { struct C { template <typename T> void exec() { A __trans_tmp_1; const auto target = *__trans_tmp_1; searchGen(0, 0, 0, [=](T) { [=] { target; }; }); } }; } void ____C_A_T_C_H____T_E_S_T____75() { forEachType<C, int>; } markus@x4 tmp % /usr/x86_64-pc-linux-gnu/gcc-bin/4.9.3/g++ -std=c++11 -c Uni.ii markus@x4 tmp % g++ -c Uni.ii Uni.ii: In lambda function: Uni.ii:22:33: internal compiler error: in gimplify_var_or_parm_decl, at gimplify.c:1776 searchGen(0, 0, 0, [=](T) { [=] { target; }; }); ^ 0xa653e1 gimplify_var_or_parm_decl ../../gcc/gcc/gimplify.c:1776 0xa6c827 gimplify_expr(tree_node**, gimple_statement_base**, gimple_statement_base**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:8500 0xa794f6 gimplify_modify_expr ../../gcc/gcc/gimplify.c:4625 0xa6cd94 gimplify_expr(tree_node**, gimple_statement_base**, gimple_statement_base**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:8069 0xa70ec6 gimplify_stmt(tree_node**, gimple_statement_base**) ../../gcc/gcc/gimplify.c:5525 0xa710ac gimplify_and_add(tree_node*, gimple_statement_base**) ../../gcc/gcc/gimplify.c:398 0xa710ac gimplify_init_ctor_eval ../../gcc/gcc/gimplify.c:3637 0xa78156 gimplify_init_constructor ../../gcc/gcc/gimplify.c:3997 0xa78f97 gimplify_modify_expr_rhs ../../gcc/gcc/gimplify.c:4254 0xa7936d gimplify_modify_expr ../../gcc/gcc/gimplify.c:4584 0xa6cd94 gimplify_expr(tree_node**, gimple_statement_base**, gimple_statement_base**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:8069 0xa6cebd gimplify_target_expr ../../gcc/gcc/gimplify.c:5456 0xa6cebd gimplify_expr(tree_node**, gimple_statement_base**, gimple_statement_base**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:8436 0xa70ec6 gimplify_stmt(tree_node**, gimple_statement_base**) ../../gcc/gcc/gimplify.c:5525 0xa6d1b3 gimplify_cleanup_point_expr ../../gcc/gcc/gimplify.c:5301 0xa6d1b3 gimplify_expr(tree_node**, gimple_statement_base**, gimple_statement_base**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:8432 0xa70ec6 gimplify_stmt(tree_node**, gimple_statement_base**) ../../gcc/gcc/gimplify.c:5525 0xa727bd gimplify_bind_expr ../../gcc/gcc/gimplify.c:1111 0xa6d0ec gimplify_expr(tree_node**, gimple_statement_base**, gimple_statement_base**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:8266 0xa70ec6 gimplify_stmt(tree_node**, gimple_statement_base**) ../../gcc/gcc/gimplify.c:5525 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions.