1 // Header for PCH test cxx-for-range.cpp 2 3 struct S { 4 int *begin(); 5 int *end(); 6 }; 7 8 struct T { }; 9 char *begin(T); 10 char *end(T); 11 12 namespace NS { 13 struct U { }; 14 char *begin(U); 15 char *end(U); 16 } 17 using NS::U; 18 f()19void f() { 20 char a[3] = { 0, 1, 2 }; 21 for (auto w : a) 22 for (auto x : S()) 23 for (auto y : T()) 24 for (auto z : U()) 25 ; 26 } 27 28 template<typename A> g()29void g() { 30 A a[3] = { 0, 1, 2 }; 31 for (auto &v : a) 32 for (auto x : S()) 33 for (auto y : T()) 34 for (auto z : U()) 35 ; 36 } 37