1*f4a2713aSLionel Sambuc // Test this without pch.
2*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -x c++ -include %S/Inputs/namespaces.h -fsyntax-only %s
3*f4a2713aSLionel Sambuc 
4*f4a2713aSLionel Sambuc // Test with pch.
5*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -x c++ -emit-pch -o %t %S/Inputs/namespaces.h
6*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -x c++ -include-pch %t -fsyntax-only %s
7*f4a2713aSLionel Sambuc 
8*f4a2713aSLionel Sambuc int int_val;
9*f4a2713aSLionel Sambuc N1::t1 *ip1 = &int_val;
10*f4a2713aSLionel Sambuc N1::t2 *ip2 = &int_val;
11*f4a2713aSLionel Sambuc N2::Inner::t3 *ip3 = &int_val;
12*f4a2713aSLionel Sambuc 
13*f4a2713aSLionel Sambuc float float_val;
14*f4a2713aSLionel Sambuc namespace N2 { }
15*f4a2713aSLionel Sambuc N2::t1 *fp1 = &float_val;
16*f4a2713aSLionel Sambuc 
17*f4a2713aSLionel Sambuc Alias1::t3 *ip4 = &int_val;
18*f4a2713aSLionel Sambuc t3 *ip5 = &int_val;
19*f4a2713aSLionel Sambuc 
20*f4a2713aSLionel Sambuc void(*funp1)() = anon;
21*f4a2713aSLionel Sambuc 
22*f4a2713aSLionel Sambuc namespace {
23*f4a2713aSLionel Sambuc   class C;
24*f4a2713aSLionel Sambuc }
25*f4a2713aSLionel Sambuc C* cp1;
26*f4a2713aSLionel Sambuc 
27*f4a2713aSLionel Sambuc namespace N3 {
28*f4a2713aSLionel Sambuc   namespace {
29*f4a2713aSLionel Sambuc     class C;
30*f4a2713aSLionel Sambuc   }
31*f4a2713aSLionel Sambuc }
32*f4a2713aSLionel Sambuc 
33*f4a2713aSLionel Sambuc N3::C *cp2;
34*f4a2713aSLionel Sambuc 
35*f4a2713aSLionel Sambuc void(*funp2)() = ext;
36*f4a2713aSLionel Sambuc 
37*f4a2713aSLionel Sambuc using N1::used_func;
38*f4a2713aSLionel Sambuc void (*pused)() = used_func;
39*f4a2713aSLionel Sambuc 
40*f4a2713aSLionel Sambuc using N1::used_cls;
41*f4a2713aSLionel Sambuc used_cls s1;
42*f4a2713aSLionel Sambuc used_cls* ps1 = &s1;
43*f4a2713aSLionel Sambuc 
44*f4a2713aSLionel Sambuc inline namespace N4 { }
45*f4a2713aSLionel Sambuc struct MemberOfN4 *mn4;
46