X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=gcc%2Ftestsuite%2Fg%2B%2B.old-deja%2Fg%2B%2B.other%2Fpmf5.C;fp=gcc%2Ftestsuite%2Fg%2B%2B.old-deja%2Fg%2B%2B.other%2Fpmf5.C;h=0000000000000000000000000000000000000000;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=e3e6a9fac53195d872265a7d153167687cf11a99;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/gcc/testsuite/g++.old-deja/g++.other/pmf5.C b/gcc/testsuite/g++.old-deja/g++.other/pmf5.C deleted file mode 100644 index e3e6a9fa..00000000 --- a/gcc/testsuite/g++.old-deja/g++.other/pmf5.C +++ /dev/null @@ -1,38 +0,0 @@ -// Bug: g++ expanded b->member() multiple times, causing the optimizer to -// decide that things weren't related and optimize 'die' into an infinite -// loop. - -struct A { - virtual ~A() { } - void f (bool) { } -}; - -typedef void (A::*pmf_void)(); -typedef void (A::*pmf_bool)(bool); - -struct B { - ~B() {} - pmf_void member() const { return mbr; } - pmf_void mbr; -}; - -A *a; -B *b; - -void die (bool param) { - pmf_bool pmf = (pmf_bool)(b->member()); - (a->*pmf)(param); -} - -int main () -{ - A a2; - B b2; - - b2.mbr = reinterpret_cast(&A::f); - - a = &a2; - b = &b2; - - die (true); -}