150565Sphk// { dg-do run } 250565Sphkclass B { 350565Sphkpublic: 450565Sphk int bi; 550565Sphk void bProc ( void ) { bi = 39; } 650565Sphk }; 750565Sphk 850565Sphkclass D : public B { 950565Sphkpublic: 1050565Sphk int di; 1150565Sphk void dProc (void ){ di = 42; } 1250565Sphk }; 1350565Sphk 1450565Sphktypedef void (B::*BPROC)(void); 1550565Sphktypedef void (D::*DPROC)(void); 1651111Sjulian 1760041Sphkunion AFX_PMSG { 1850565Sphkpublic: 1950565Sphk 2050565Sphk AFX_PMSG () {} 2161953Snbm AFX_PMSG ( BPROC bpr ) { bfn = bpr ; } 2250728Sphk 2364880Sphk operator BPROC() { return bfn; } 2464880Sphk 2569774Sphk BPROC bfn; 2650565Sphk DPROC dfn; 2750565Sphk}; 2850565Sphk 2950565Sphk 3050565Sphkint main(int argc, char *argv[]) { 3150565Sphk B b; 3261717Sphk D d; 3361717Sphk 3464880Sphk BPROC bpr = &B::bProc; 3562617Simp AFX_PMSG pmsg(bpr); 3664880Sphk 3764880Sphk BPROC ppr = pmsg; 3864880Sphk 3964880Sphk return 0; 4064880Sphk} 4164880Sphk