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()28 void bar() {
29   static int j = int(s+b);
30   int i = int(s+b);
31 }
32 
33 int i = int(s+b);
34 
main()35 int main() {
36   bar();
37   bar();
38   return count != 2;
39 }
40