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 Livoid 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 Livoid 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