1// { dg-do run  }
2// Test for proper handling of temporaries in ?: exprs.
3
4extern "C" int printf (const char *, ...);
5int c = 0, d = 0;
6
7class A {
8public:
9  A() { ++c; }
10  A(const A&) { ++c; }
11  ~A() { ++d; }
12};
13
14A f (const A& a)
15{
16  return (c ? A() : A());
17}
18
19int main()
20{
21  {
22    f (c ? A() : A());
23  }
24  printf ("%d %d\n", c, d);
25  return c != d || c != 2;
26}
27