[C++ PATCH] Deprecate -ffriend-injection
[official-gcc.git] / gcc / testsuite / g++.dg / ipa / pr69239.C
blob913e4b198c08863b20dbd3f118ac5faec0d61463
1 // PR ipa/69239
2 // { dg-do run }
3 // { dg-options "-O2 --param=early-inlining-insns=196" }
4 // { dg-additional-options "-fPIC" { target fpic } }
6 struct D
8   float f;
9   D () {}
10   virtual float bar (float z);
13 struct A
15   A ();
16   virtual int foo (int i);
19 struct B : public D, public A
21   virtual int foo (int i);
24 float
25 D::bar (float)
27   return f / 2;
30 int
31 A::foo (int i)
33   return i + 1;
36 int
37 B::foo (int i)
39   return i + 2;
42 int __attribute__ ((noinline,noclone))
43 baz ()
45   return 1;
48 static int __attribute__ ((noinline))
49 fn (A *obj, int i)
51   return obj->foo (i);
54 inline __attribute__ ((always_inline))
55 A::A ()
57   if (fn (this, baz ()) != 2)
58     __builtin_abort ();
61 static void
62 bah ()
64   B b;
67 int
68 main ()
70   bah ();