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()38int main() 39 { 40 S s; 41 s.f(); 42 return 2 * i + j; 43 } 44