old-cross-binutils/ld/testsuite/ld-selective/3.cc

34 lines
532 B
C++
Raw Normal View History

1999-05-03 07:29:11 +00:00
struct A
{
virtual void foo();
virtual void bar();
};
void A::foo() { } // keep
void A::bar() { } // loose
struct B : public A
{
virtual void foo();
};
void B::foo() { } // keep
void _start() __asm__("_start"); // keep
A a; // keep
B b;
A *getme() { return &a; } // keep
void _start()
{
getme()->foo();
}
// In addition, keep A's virtual table.
// We'll wind up keeping `b' and thus B's virtual table because
// `a' and `b' are both referenced from the constructor function.
extern "C" void __main() { }