1 // { dg-do run } 2 int count = 0; 3 4 class T { 5 int i; 6 public: T()7 T() { 8 i = 1; 9 ++count; 10 } T(const T & o)11 T(const T& o) { 12 i = o.i; 13 ++count; 14 } 15 T operator +(const T& o) { 16 T r; 17 r.i = this->i + o.i; 18 return r; 19 } 20 operator int () { 21 return i; 22 } ~T()23 ~T() { 24 --count; 25 } 26 } s, b; 27 bar()28void bar() { 29 static int j = int(s+b); 30 int i = int(s+b); 31 } 32 33 int i = int(s+b); 34 main()35int main() { 36 bar(); 37 bar(); 38 return count != 2; 39 } 40