testsuite: auto-wipe dump files
[official-gcc.git] / gcc / testsuite / g++.dg / ipa / ivinline-3.C
blob1e246449c35bd548d8c56367132661912e6d03a4
1 /* Verify that simple virtual calls on an object refrence are inlined
2    even without early inlining.  */
3 /* { dg-do run { target nonpic } } */
4 /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */
6 extern "C" void abort (void);
8 class A
10 public:
11   int data;
12   virtual int foo (int i);
15 class B : public A
17 public:
18   virtual int foo (int i);
21 class C : public A
23 public:
24   virtual int foo (int i);
27 int A::foo (int i)
29   return i + 1;
32 int B::foo (int i)
34   return i + 2;
37 int C::foo (int i)
39   return i + 3;
42 int middleman (class A &obj, int i)
44   return obj.foo (i);
47 int __attribute__ ((noinline,noclone)) get_input(void)
49   return 1;
52 int main (int argc, char *argv[])
54   class B b;
55   int i;
57   for (i = 0; i < get_input (); i++)
58     if (middleman (b, get_input ()) != 3)
59       abort ();
60   return 0;
63 /* { dg-final { scan-ipa-dump "B::foo\[^\\n\]*inline copy in int main"  "inline"  } } */