1 // { dg-do assemble  }
2 
3 int i;
4 int j;
5 
6 struct S {
operatorS7   int operator()(int)
8     {
9       i = 1;
10       return i;
11     }
12 
13   typedef int I;
14 
fS15   void f() {
16     for (S I; false; )
17       ;
18     int k = I(3);
19   }
20 };
21 
22 typedef int J;
23 
24 struct T {
operatorT25   int operator()(int)
26     {
27       j = 1;
28       return j;
29     }
30 
fT31   void f() {
32     for (T J; false; )
33       ;
34     int k = J(3);
35   }
36 };
37 
main()38 int main()
39 {
40   S s;
41   s.f();
42   return 2 * i + j;
43 }
44