// { 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; | |
} |