mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-24 17:36:04 +08:00
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:
parent
44714d8ce1
commit
cfac5ed236
@ -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
|
||||
|
71
gcc/testsuite/g++.dg/ipa/pr69239.C
Normal file
71
gcc/testsuite/g++.dg/ipa/pr69239.C
Normal 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 ();
|
||||
}
|
Loading…
Reference in New Issue
Block a user