Fix test-suite fallout of default -Wreturn-type.
[official-gcc.git] / gcc / testsuite / g++.dg / ipa / ivinline-1.C
blob9b10d20db6b907352f92a1900c50b82e98899313
1 /* Verify that simple virtual calls are inlined even without early
2    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"  } } */