|
|
|
@ -5,7 +5,7 @@ struct A |
|
|
|
}; |
|
|
|
|
|
|
|
void A::foo() { } // keep
|
|
|
|
void A::bar() { } // loose
|
|
|
|
void A::bar() { } // lose
|
|
|
|
|
|
|
|
struct B : public A |
|
|
|
{ |
|
|
|
@ -23,6 +23,13 @@ A *getme() { return &a; } // keep |
|
|
|
void _start() |
|
|
|
{ |
|
|
|
getme()->foo(); |
|
|
|
#ifdef __GNUC__ |
|
|
|
#if (__GNUC__ == 2 && __GNUC_MINOR__ < 96) |
|
|
|
// gcc-2.95.2 gets this test wrong, and loses B::foo().
|
|
|
|
// Cheat. After all, we aren't trying to test the compiler here.
|
|
|
|
b.foo(); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
// In addition, keep A's virtual table.
|
|
|
|
|