// Special g++ Options: -fhandle-signatures // GROUPS passed gb sigptr assignment initialization // Test assignment of/initialization with different type signature pointer. extern "C" { int printf (char *, ...); } class C { public: int f (void) { return 1; } int g (int) { return 2; } }; signature S { int f (void); int g (int); }; signature T { int f (void); }; signature U { int g (int); }; C a; S * p1 = &a; T * q1 = p1; U * r1 = p1; int main (void) { C a; S * p2 = &a; T * q2 = p2; U * r2 = p2; T * q3; U * r3; q3 = p2; r3 = p2; if (q1->f () + q2->f () + q3->f () == 3 && r1->g (0) + r2->g (0) + r3->g (0) == 6) printf ("PASS\n"); return 0; }