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.