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