2018-11-07 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / lto / v1-plugin-api-not-supported_0.C
blobf79dfae5c6f69ce661a55f9016f9e787188872c3
1 // { dg-lto-do run }
2 // { dg-require-linker-plugin "" }
3 // { dg-lto-options {{-O2 -fuse-linker-plugin -fno-early-inlining}}
5 extern "C" void abort (void);
6 extern "C" void linker_error ();
8 class A
10 public:
11   int data;
12   virtual int foo (int i)
13     {
14       return i + 1;
15     }
18 class B : public A
20 public:
21   virtual int foo (int i)
22     {
23       return i + 2;
24     }
27 class C : public A
29 public:
30   virtual int foo (int i)
31     {
32       linker_error ();
33       return i + 3;
34     }
38 static int middleman (class A *obj, int i)
40   return obj->foo (i);
43 int __attribute__ ((noinline,noclone)) get_input(void)
45   return 1;
48 int main (int argc, char *argv[])
50   class B b;
51   if (middleman (&b, get_input ()) != 3)
52     abort ();
53   return 0;