// { dg-do run } int count = 0; class T { int i; public: T() { i = 1; ++count; } T(const T& o) { i = o.i; ++count; } T operator +(const T& o) { T r; r.i = this->i + o.i; return r; } operator int () { return i; } ~T() { --count; } } s, b; void bar() { static int j = int(s+b); int i = int(s+b); } int i = int(s+b); int main() { bar(); bar(); return count != 2; }