1754a5d14d58213beb0502720e66fef8fa86a21cfArgyrios Kyrtzidisusing MyTypeAlias = int; 2754a5d14d58213beb0502720e66fef8fa86a21cfArgyrios Kyrtzidis 31f12c47ae90c03633496d96e79a61762097a4681Argyrios Kyrtzidisextern "C" { 41f12c47ae90c03633496d96e79a61762097a4681Argyrios Kyrtzidis template < typename T > *Allocate() { } 51f12c47ae90c03633496d96e79a61762097a4681Argyrios Kyrtzidis} 61f12c47ae90c03633496d96e79a61762097a4681Argyrios Kyrtzidis 7d62d9015c76d4e7dee1fddd9603b92098b355e15Argyrios Kyrtzidis// rdar://14063074 8d62d9015c76d4e7dee1fddd9603b92098b355e15Argyrios Kyrtzidisnamespace rdar14063074 { 9d62d9015c76d4e7dee1fddd9603b92098b355e15Argyrios Kyrtzidistemplate <typename T> 10d62d9015c76d4e7dee1fddd9603b92098b355e15Argyrios Kyrtzidisstruct TS {}; 11d62d9015c76d4e7dee1fddd9603b92098b355e15Argyrios Kyrtzidisstruct TS<int> {}; 12d62d9015c76d4e7dee1fddd9603b92098b355e15Argyrios Kyrtzidis 13d62d9015c76d4e7dee1fddd9603b92098b355e15Argyrios Kyrtzidistemplate <typename T> 14d62d9015c76d4e7dee1fddd9603b92098b355e15Argyrios Kyrtzidisvoid tfoo() {} 15d62d9015c76d4e7dee1fddd9603b92098b355e15Argyrios Kyrtzidisvoid tfoo<int>() {} 16d62d9015c76d4e7dee1fddd9603b92098b355e15Argyrios Kyrtzidis} 17d62d9015c76d4e7dee1fddd9603b92098b355e15Argyrios Kyrtzidis 18754a5d14d58213beb0502720e66fef8fa86a21cfArgyrios Kyrtzidis// RUN: c-index-test -index-file %s > %t 19754a5d14d58213beb0502720e66fef8fa86a21cfArgyrios Kyrtzidis// RUN: FileCheck %s -input-file=%t 20754a5d14d58213beb0502720e66fef8fa86a21cfArgyrios Kyrtzidis 21754a5d14d58213beb0502720e66fef8fa86a21cfArgyrios Kyrtzidis// CHECK: [indexDeclaration]: kind: type-alias | name: MyTypeAlias | {{.*}} | loc: 1:7 22d62d9015c76d4e7dee1fddd9603b92098b355e15Argyrios Kyrtzidis// CHECK: [indexDeclaration]: kind: struct-template-spec | name: TS | {{.*}} | loc: 11:8 23d62d9015c76d4e7dee1fddd9603b92098b355e15Argyrios Kyrtzidis// CHECK: [indexDeclaration]: kind: function-template-spec | name: tfoo | {{.*}} | loc: 15:6 24