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