re PR ipa/59918 (ICE in record_target_from_binfo, at ipa-devirt.c:693)
PR ipa/59918 * ipa-devirt.c (record_target_from_binfo): Remove overactive sanity check. * g++.dg/torture/pr59918.C: New testcase. From-SVN: r207592
This commit is contained in:
parent
ddb3e20aae
commit
6d6af79282
4 changed files with 29 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
|||
2014-02-06 Jan Hubicka <hubicka@ucw.cz>
|
||||
|
||||
PR ipa/59918
|
||||
* ipa-devirt.c (record_target_from_binfo): Remove overactive sanity check.
|
||||
|
||||
2014-02-06 Jan Hubicka <hubicka@ucw.cz>
|
||||
|
||||
PR ipa/59469
|
||||
|
|
|
@ -689,10 +689,7 @@ record_target_from_binfo (vec <cgraph_node *> &nodes,
|
|||
we may not have its associated vtable. This is not a problem, since
|
||||
we will walk it on the other path. */
|
||||
if (!type_binfo)
|
||||
{
|
||||
gcc_assert (BINFO_VIRTUAL_P (binfo));
|
||||
return;
|
||||
}
|
||||
return;
|
||||
tree inner_binfo = get_binfo_at_offset (type_binfo,
|
||||
offset, otr_type);
|
||||
/* For types in anonymous namespace first check if the respective vtable
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2014-02-06 Jan Hubicka <hubicka@ucw.cz>
|
||||
|
||||
PR ipa/59918
|
||||
* g++.dg/torture/pr59918.C: New testcase.
|
||||
|
||||
2014-02-06 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/59575
|
||||
|
|
18
gcc/testsuite/g++.dg/torture/pr59918.C
Normal file
18
gcc/testsuite/g++.dg/torture/pr59918.C
Normal file
|
@ -0,0 +1,18 @@
|
|||
/* { dg-do compile } */
|
||||
struct E {
|
||||
~E();
|
||||
virtual void f() const;
|
||||
};
|
||||
struct B : E {};
|
||||
struct G : virtual B {};
|
||||
struct A {
|
||||
virtual ~A();
|
||||
};
|
||||
struct J : E {
|
||||
void f() const {
|
||||
E *p = 0;
|
||||
p->f();
|
||||
}
|
||||
};
|
||||
J h;
|
||||
struct I : A, G, virtual B {};
|
Loading…
Add table
Reference in a new issue