// { dg-do run } | |
// A test case found by InterViews testing... | |
extern "C" int printf(const char *, ...); | |
class A { | |
public: | |
int foo() { printf("ok nv\n"); return 0; } | |
virtual int vfoo() { printf("ok v\n"); return 0; } | |
}; | |
struct S { | |
int (A::*pfn1)(); | |
int (A::*pfn2)(); | |
int (A::*pfn3)(); | |
}; | |
// This failed before. | |
S s = { &A::foo, &A::vfoo, &A::foo }; | |
A a; | |
int main() { | |
(a.*s.pfn1)(); | |
(a.*s.pfn2)(); | |
printf("PASS\n"); | |
return 0; | |
} |