Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.old-deja/g++.other/pmf5.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// { dg-do run } // 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<pmf_void>(&A::f); a = &a2; b = &b2; die (true); }