xref: /aosp_15_r20/external/clang/test/Index/linkage.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: c-index-test -test-print-linkage-source %s | FileCheck %s
2*67e74705SXin Li 
3*67e74705SXin Li enum Baz { Qux = 0 };
4*67e74705SXin Li int x;
5*67e74705SXin Li void foo();
6*67e74705SXin Li static int w;
bar(int y)7*67e74705SXin Li void bar(int y) {
8*67e74705SXin Li   static int z;
9*67e74705SXin Li   int k;
10*67e74705SXin Li }
11*67e74705SXin Li extern int n;
12*67e74705SXin Li static int wibble(int);
13*67e74705SXin Li 
14*67e74705SXin Li void ena(int (*dio)(int tria));
15*67e74705SXin Li 
16*67e74705SXin Li static int test2;
f16(void)17*67e74705SXin Li void f16(void) {
18*67e74705SXin Li   extern int test2;
19*67e74705SXin Li }
20*67e74705SXin Li 
21*67e74705SXin Li 
22*67e74705SXin Li // CHECK: EnumDecl=Baz:3:6 (Definition)linkage=External
23*67e74705SXin Li // CHECK: EnumConstantDecl=Qux:3:12 (Definition)linkage=External
24*67e74705SXin Li // CHECK: VarDecl=x:4:5linkage=External
25*67e74705SXin Li // CHECK: FunctionDecl=foo:5:6linkage=External
26*67e74705SXin Li // CHECK: VarDecl=w:6:12linkage=Internal
27*67e74705SXin Li // CHECK: FunctionDecl=bar:7:6 (Definition)linkage=External
28*67e74705SXin Li // CHECK: ParmDecl=y:7:14 (Definition)linkage=NoLinkage
29*67e74705SXin Li // CHECK: VarDecl=z:8:14 (Definition)linkage=NoLinkage
30*67e74705SXin Li // CHECK: VarDecl=k:9:7 (Definition)linkage=NoLinkage
31*67e74705SXin Li // CHECK: VarDecl=n:11:12linkage=External
32*67e74705SXin Li // CHECK: FunctionDecl=wibble:12:12linkage=Internal
33*67e74705SXin Li // CHECK: ParmDecl=:12:22 (Definition)linkage=NoLinkage
34*67e74705SXin Li // CHECK: FunctionDecl=ena:14:6linkage=External
35*67e74705SXin Li // CHECK: ParmDecl=dio:14:16 (Definition)linkage=NoLinkage
36*67e74705SXin Li // CHECK: ParmDecl=tria:14:25 (Definition)linkage=NoLinkage
37*67e74705SXin Li // CHECK: VarDecl=test2{{.*}}linkage=Internal
38*67e74705SXin Li // CHECK: VarDecl=test2{{.*}}linkage=Internal
39