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()19 void 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()29 void 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