// Special g++ Options: -fhandle-signatures // GROUPS passed gb sigptr assignment sigsigtable // Test use of multiple signature-signature tables for same signature pair. extern "C" { int printf (char *, ...); } class C { public: virtual int f (void) { return 1; } int g (int) { return 2; } }; class D : public C { public: int f (void) { return 3; } int g (int) { return 4; } }; signature S { int f (void); int g (int); }; signature T { int g (int); int f (void); }; int main (void) { S * p = new C; T * q = p; T * r; p = new D; r = p; if (q->f () == 1 && q->g (0) == 2 && r->f () == 3 && r->g (0) == 4) printf ("PASS\n"); else printf ("FAIL\n"); return 0; }