blob: 7601333842a33357c0d9f4db64aa2ac803a69967 [file] [log] [blame]
// { dg-do run }
// PRMS Id: 6486
// Make sure that no confused handling of COND_EXPRs and SAVE_EXPRs messes
// with the number of calls to foo.
int c;
struct A {
void f () {}
virtual void g () {}
};
A& foo ()
{
static A a;
++c;
return a;
}
int main ()
{
void (A::*p)() = &A::f;
(foo ().*p)();
p = &A::g;
(foo ().*p)();
return 2 - c;
}