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