re PR ipa/69239 (g++.dg/ipa/devirt-c-3.C FAILs with -O2 -fPIC --param=early-inlining-insns=196)

PR ipa/69239
	* g++.dg/ipa/pr69239.C: New test.

From-SVN: r233224
This commit is contained in:
Jakub Jelinek 2016-02-08 18:41:35 +01:00 committed by Jakub Jelinek
parent 44714d8ce1
commit cfac5ed236
2 changed files with 76 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2016-02-08 Jakub Jelinek <jakub@redhat.com>
PR ipa/69239
* g++.dg/ipa/pr69239.C: New test.
2016-02-08 David Malcolm <dmalcolm@redhat.com>
PR preprocessor/69664

View File

@ -0,0 +1,71 @@
// PR ipa/69239
// { dg-do run }
// { dg-options "-O2 --param=early-inlining-insns=196" }
// { dg-additional-options "-fPIC" { target fpic } }
struct D
{
float f;
D () {}
virtual float bar (float z);
};
struct A
{
A ();
virtual int foo (int i);
};
struct B : public D, public A
{
virtual int foo (int i);
};
float
D::bar (float)
{
return f / 2;
}
int
A::foo (int i)
{
return i + 1;
}
int
B::foo (int i)
{
return i + 2;
}
int __attribute__ ((noinline,noclone))
baz ()
{
return 1;
}
static int __attribute__ ((noinline))
fn (A *obj, int i)
{
return obj->foo (i);
}
inline __attribute__ ((always_inline))
A::A ()
{
if (fn (this, baz ()) != 2)
__builtin_abort ();
}
static void
bah ()
{
B b;
}
int
main ()
{
bah ();
}