X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=gcc%2Ftestsuite%2Fg%2B%2B.old-deja%2Fg%2B%2B.mike%2Fpmf2.C;fp=gcc%2Ftestsuite%2Fg%2B%2B.old-deja%2Fg%2B%2B.mike%2Fpmf2.C;h=0000000000000000000000000000000000000000;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=e50f47242dc266d4c45b5219f6d070a86191c78b;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C b/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C deleted file mode 100644 index e50f4724..00000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C +++ /dev/null @@ -1,54 +0,0 @@ -extern "C" int printf(const char *, ...); - -class A_table { - int c; -public: - A_table() { c = 3;} - virtual void func2(int &item) { printf("func2(%d,) c=%d\n",item,c);} -}; - -class B_table : private A_table { -public: - typedef void (B_table::* B_ti_fn) (int &item); - B_table() { j = 0x4321;} - virtual void call_fn_fn1(int &item, void *pfn1); - void func1(int &item) { printf("func1(%d)\n",item);} - virtual void func2(int &item) { printf("func2(%d) j=%d\n",item,j);} - int j; -}; - -class foo : public A_table { -public: - int i; - virtual ~foo(); - virtual void func2(int &item) { printf("func2(%d) i=%d\n",item,i);} -}; -foo::~foo() { i = 0;} - -class bar :public foo,public B_table { -public: - int w; - virtual ~bar(); - virtual void func2(int &item) { printf("func2(%d) w=%d\n",item,w);} -}; -bar::~bar() { w = 0;} - -void B_table::call_fn_fn1(int &item, void *pfn1) { - (this->*(*(B_ti_fn*)pfn1))(item); -} - -B_table b; -bar jar; - -int main() { - printf("ptr to B_table=%x, ptr to A_table=%x\n",&b,(A_table*)&b); - B_table::B_ti_fn z = &B_table::func1; - int j = 1; - jar.call_fn_fn1(j,(void *)&z); - j++; - z = &B_table::func2; - b.call_fn_fn1(j,(void *)&z); - j++; - jar.call_fn_fn1(j,(void *)&z); - return 0; -}