[Bug c++/67244] [5/6 Regression] internal compiler error: in gimplify_var_or_parm_decl, at gimplify.c:1801

trippels at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Aug 17 10:24:00 GMT 2015


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.



More information about the Gcc-bugs mailing list