1// { dg-do run } 2void *vp; 3 4class silly { 5public: 6 virtual int b() { return 1; } 7}; 8class solly : silly { 9public: 10 virtual int b() { return 2; } 11}; 12class thing { 13public: 14 virtual int a() { return 3; } 15}; 16class thong : public solly, public thing { 17public: 18 virtual int a() { 19 if (this != vp) return 4; 20 else return 0; 21 } 22}; 23 24typedef int(thing::*ping)(); 25ping qq = &thing::a; 26 27int main() { 28 thong b; 29 vp = &b; 30 return (b.*qq)(); 31} 32