aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.mike/p11116.C
blob: 9beff46e82752dc26116d9a73a0d0cc7591e0766 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Build don't link:
// Special g++ Options: -Wno-pmf-conversions
// prms-id: 11116

class Bar {
public:
  int f(int a) { val = a; return val; }
private:
  int val;
};

typedef int (Bar::*BarPtr)(int);

void foo() {
  int a;
  int (Bar::*bp)(int) = &Bar::f;
  Bar bar;
  int (*p)(void *, int);

  p = (int (*)(void*,int))((void (*)())((bp).__pfn_or_delta2.__pfn));
  a = (*p)(&bar, 4);
}