Commit | Line | Data |
---|---|---|
bd0110a3 HPN |
1 | struct A |
2 | { | |
3 | virtual void foo(); | |
4 | virtual void bar(); | |
5 | }; | |
6 | ||
7 | void A::foo() { } // lose | |
8 | void A::bar() { } // keep | |
9 | ||
10 | struct B : public A | |
11 | { | |
12 | virtual void foo(); | |
13 | }; | |
14 | ||
15 | void B::foo() { } // lose | |
16 | ||
17 | void _start() __asm__("_start"); // keep | |
5ad8914f | 18 | void start() __asm__("start"); // some toolchains use this name. |
bd0110a3 HPN |
19 | |
20 | A a; // keep | |
21 | B b; | |
22 | A *getme() { return &a; } // keep | |
23 | ||
24 | extern B* dropme2(); | |
25 | void dropme1() { dropme2()->foo(); } // lose | |
26 | B *dropme2() { return &b; } // lose | |
27 | ||
28 | void _start() | |
29 | { | |
30 | getme()->bar(); | |
31 | } | |
32 | ||
5ad8914f JR |
33 | void start () |
34 | { | |
35 | _start (); | |
36 | } | |
37 | ||
bd0110a3 | 38 | extern "C" void __main() { } |