// { dg-do run } // Bug: a is destroyed in both foo() and main() int count; struct A { double a,b; A(int) { count++; } A(const A&) { count++; } ~A() { count--; } }; void foo (A a) { } int main() { foo (1); return count; }