[Bug ipa/59918] [4.9 Regression] ICE in record_target_from_binfo, at ipa-devirt.c:693
trippels at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jan 23 14:31:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59918
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2014-01-23
CC| |hubicka at gcc dot gnu.org,
| |trippels at gcc dot gnu.org
Component|tree-optimization |ipa
Ever confirmed|0 |1
--- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
markus@x4 tmp % cat test.ii
class NameValuePairs {
public:
~NameValuePairs();
virtual bool GetVoidValue(const char *, const std::type_info &valueType,
void *) const;
};
class B : NameValuePairs {};
class F : virtual B {};
class G : virtual B {};
class ASN1Object {
public:
virtual ~ASN1Object();
};
template <class, class BASE> class GetValueHelperClass {
public:
GetValueHelperClass(int *, int *, const std::type_info &valueType, void *,
NameValuePairs *searchFirst) {
searchFirst->GetVoidValue(0, valueType, 0);
}
void Assignable();
};
template <class BASE, class T>
GetValueHelperClass<T, int>
GetValueHelper(T, int, const std::type_info &valueType, void *) {
GetValueHelperClass<T, BASE>(0, 0, valueType, 0, 0);
}
template <class BASE> class C : ASN1Object, BASE {};
class DL_GroupParameters : F {};
template <class GP> class H : C<F> {
GP m_groupParameters;
};
template <class GP> class DL_PrivateKeyImpl : H<GP> {};
template <class BASE> class D : BASE {};
class ECP;
template <class EC> class DL_GroupParameters_EC : DL_GroupParameters {
bool GetVoidValue(const char *, const std::type_info &valueType,
void *) const;
};
class A : DL_PrivateKeyImpl<DL_GroupParameters_EC<ECP> > {};
template class D<A>;
class I : C<G>, C<F> {};
template <class EC>
bool DL_GroupParameters_EC<EC>::GetVoidValue(const char *,
const std::type_info &valueType,
void *) const {
GetValueHelper<DL_GroupParameters>(0, 0, valueType, 0).Assignable();
}
markus@x4 tmp % g++ -O2 -c test.ii
test.ii: In constructor ‘GetValueHelperClass< <template-parameter-1-1>,
BASE>::GetValueHelperClass(int*, int*, const std::type_info&, void*,
NameValuePairs*) [with <template-parameter-1-1> = int; BASE =
DL_GroupParameters]’:
test.ii:18:5: internal compiler error: in record_target_from_binfo, at
ipa-devirt.c:693
searchFirst->GetVoidValue(0, valueType, 0);
^
0x9d0f2b record_target_from_binfo
../../gcc/gcc/ipa-devirt.c:693
0x9d0d2c record_target_from_binfo
../../gcc/gcc/ipa-devirt.c:728
0x9d0d2c record_target_from_binfo
../../gcc/gcc/ipa-devirt.c:728
0x9d0d2c record_target_from_binfo
../../gcc/gcc/ipa-devirt.c:728
0x9d0d2c record_target_from_binfo
../../gcc/gcc/ipa-devirt.c:728
0x9d133b possible_polymorphic_call_targets_1
../../gcc/gcc/ipa-devirt.c:755
0x9d13b4 possible_polymorphic_call_targets_1
../../gcc/gcc/ipa-devirt.c:762
0x9d13b4 possible_polymorphic_call_targets_1
../../gcc/gcc/ipa-devirt.c:762
0x9d13b4 possible_polymorphic_call_targets_1
../../gcc/gcc/ipa-devirt.c:762
0x9d3d32 possible_polymorphic_call_targets(tree_node*, long,
ipa_polymorphic_call_context, bool*, void**)
../../gcc/gcc/ipa-devirt.c:1346
0x99093b possible_polymorphic_call_targets(tree_node*, bool*, void**)
../../gcc/gcc/ipa-utils.h:135
0x98db4c gimple_fold_call
../../gcc/gcc/gimple-fold.c:1193
0x98db4c fold_stmt_1
../../gcc/gcc/gimple-fold.c:1306
0x9b01e3 gimplify_call_expr
../../gcc/gcc/gimplify.c:2427
0x9a3494 gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_base**, bool (*)(tree_node*), int)
../../gcc/gcc/gimplify.c:7412
0x9a7206 gimplify_stmt(tree_node**, gimple_statement_base**)
../../gcc/gcc/gimplify.c:5334
0x9a353a gimplify_cleanup_point_expr
../../gcc/gcc/gimplify.c:5110
0x9a353a gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_base**, bool (*)(tree_node*), int)
../../gcc/gcc/gimplify.c:7804
0x9a7206 gimplify_stmt(tree_node**, gimple_statement_base**)
../../gcc/gcc/gimplify.c:5334
0x9a7faa gimplify_bind_expr
../../gcc/gcc/gimplify.c:1072
Please submit a full bug report,
More information about the Gcc-bugs
mailing list