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