blob: ed670a1ac71170b31aada51cbc4554c00e64d92c [file] [log] [blame]
// Build don't link:
// Special g++ Options: -Wno-pmf-conversions
// prms-id: 11116
#if defined (__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100
// This test tests the rather strange property afforded one by G++ to
// peek inside a pointer-to-member, as if it were a structure. We
// probably shouldn't allow that. In any case, under the new ABI,
// the fields don't have the same names.
#else
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);
}
#endif