123353Sdfr// { dg-do run  }
223353Sdfrvoid *vp;
323353Sdfr
423353Sdfrclass silly {
523353Sdfrpublic:
623353Sdfr  virtual int b() { return 1; }
723353Sdfr};
823353Sdfrclass solly : silly {
923353Sdfrpublic:
1023353Sdfr  virtual int b() { return 2; }
1123353Sdfr};
1223353Sdfrclass thing {
1323353Sdfrpublic:
1423353Sdfr  virtual int a() { return 3; }
1523353Sdfr};
1623353Sdfrclass thong : public solly, public thing {
1723353Sdfrpublic:
1823353Sdfr  virtual int a() {
1923353Sdfr    if (this != vp) return 4;
2023353Sdfr    else return 0;
2123353Sdfr  }
2223353Sdfr};
2323353Sdfr
2423353Sdfrtypedef int(thing::*ping)();
2523353Sdfrping qq = &thing::a;
2623353Sdfr
2723353Sdfrint main() {
2823353Sdfr  thong b;
2950476Speter  vp = &b;
3023353Sdfr  return (b.*qq)();
3123353Sdfr}
32206622Suqs