// Special g++ Options: -fhandle-signatures // GROUPS passed gb sigptr cast // Test casting a class pointer to an anonymous signature pointer. extern "C" { int printf (char *, ...); } class C { public: char * f (void) { return "PA"; } char * g (int) { return "S"; } char * h (void) { return "FAIL"; } }; signature S { char * f (void); char * g (int); }; signature T { char * f (void); }; C a; signature { char * g (int); } * r1 = (signature { char * h (void); char * g (int); } *) &a; int main (void) { C a; S * p = &a; T * q = p; signature { char * g (int); } * r2 = (signature { char * h (void); char * g (int); } *) &a; printf ("%s%s%s\n", q->f (), r1->g (0), r2->g (0)); return 0; }