blob: ab006590b61c0992694d1b23fdb6bfb2302df6cf [file] [log] [blame]
Ted Kremenek3bed5272010-03-03 06:37:58 +00001// RUN: c-index-test -test-print-linkage-source %s | FileCheck %s
2
3enum Baz { Qux = 0 };
4int x;
5void foo();
6static int w;
7void bar(int y) {
8 static int z;
9 int k;
10}
11extern int n;
Douglas Gregorc2a2b3c2010-03-04 19:36:27 +000012static int wibble(int);
Ted Kremenek3bed5272010-03-03 06:37:58 +000013
Argyrios Kyrtzidisf8d34ed2011-12-01 01:28:21 +000014void ena(int (*dio)(int tria));
15
Rafael Espindolaa7a2f2a2012-12-18 04:18:55 +000016static int test2;
17void f16(void) {
18 extern int test2;
19}
20
21
Ted Kremenek3bed5272010-03-03 06:37:58 +000022// CHECK: EnumDecl=Baz:3:6 (Definition)linkage=External
23// CHECK: EnumConstantDecl=Qux:3:12 (Definition)linkage=External
24// CHECK: VarDecl=x:4:5linkage=External
25// CHECK: FunctionDecl=foo:5:6linkage=External
Douglas Gregorc2a2b3c2010-03-04 19:36:27 +000026// CHECK: VarDecl=w:6:12linkage=Internal
Ted Kremenek3bed5272010-03-03 06:37:58 +000027// CHECK: FunctionDecl=bar:7:6 (Definition)linkage=External
Douglas Gregorc2a2b3c2010-03-04 19:36:27 +000028// CHECK: ParmDecl=y:7:14 (Definition)linkage=NoLinkage
29// CHECK: VarDecl=z:8:14 (Definition)linkage=NoLinkage
30// CHECK: VarDecl=k:9:7 (Definition)linkage=NoLinkage
31// CHECK: VarDecl=n:11:12linkage=External
32// CHECK: FunctionDecl=wibble:12:12linkage=Internal
Argyrios Kyrtzidisf8d34ed2011-12-01 01:28:21 +000033// CHECK: ParmDecl=:12:22 (Definition)linkage=NoLinkage
34// CHECK: FunctionDecl=ena:14:6linkage=External
35// CHECK: ParmDecl=dio:14:16 (Definition)linkage=NoLinkage
36// CHECK: ParmDecl=tria:14:25 (Definition)linkage=NoLinkage
Rafael Espindolaa7a2f2a2012-12-18 04:18:55 +000037// CHECK: VarDecl=test2{{.*}}linkage=Internal
38// CHECK: VarDecl=test2{{.*}}linkage=Internal