2015-03-24 Paolo Carlini <paolo.carlini@oracle.com>
[official-gcc.git] / gcc / testsuite / g++.dg / ipa / pr46984.C
blob464ceb14ae84104015caeee1ef5fb5cf8f6b5e83
1 // { dg-options "-O -fipa-cp -fno-early-inlining -flto" }
2 // { dg-do run }
3 // { dg-require-effective-target lto }
5 extern "C" void abort ();
7 class A
9 public:
10   virtual void foo () {abort();}
13 class B : public A
15 public:
16   int z;
17   virtual void foo () {abort();}
20 class C : public A
22 public:
23   void *a[32];
24   unsigned long b;
25   long c[32];
27   virtual void foo () {abort();}
30 class D : public C, public B
32 public:
33   D () : C(), B()
34   {
35     int i;
36     for (i = 0; i < 32; i++)
37       {
38         a[i] = (void *) 0;
39         c[i] = 0;
40       }
41     b = 0xaaaa;
42   }
44   virtual void foo ();
47 void D::foo()
49   if (b != 0xaaaa)
50     abort();
53 static inline void bar (B &b)
55   b.foo ();
58 int main()
60   D d;
61   bar (d);
62   return 0;