1aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidisnamespace NS { 2aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis class C { 3aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis public: 4aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis C() { } 5aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis void m(); 6aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis }; 7aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis} 8aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 9aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidisvoid NS::C::m() { 10aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis C c; 11aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis c.m(); 12aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis} 13aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 14aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidisvoid f() { 15aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis NS::C c1(); 16aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis NS::C c2 = NS::C(); 17aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis} 18aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 19aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidisvoid over(int); 20aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidisvoid over(float); 21aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 22aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidisvoid test_over() { 23aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis over(0); 24aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis over(0.0f); 25aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis} 26aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 27aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidistemplate <typename T> 28aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios KyrtzidisT tf(T t) { 29aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis return t; 30aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis} 31aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 32aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidisnamespace Test2 { 33aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 34aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidisstruct S { 35aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis S(int x, int y); 36aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis S(); 37aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis}; 38aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 39aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidistypedef S Cake; 40aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 41aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidisvoid f() { 42aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis Cake p; 43aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis p = Test2::S(0,2); 44aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis p = Test2::Cake(0,2); 45aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis} 46aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 47aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis} 48aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 49aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// RUN: c-index-test \ 50aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 51aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// RUN: -file-refs-at=%s:9:7 \ 52aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK: NamespaceRef=NS:1:11 53aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: Namespace=NS:1:11 (Definition) =[1:11 - 1:13] 54aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: NamespaceRef=NS:1:11 =[9:6 - 9:8] 55aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: NamespaceRef=NS:1:11 =[15:3 - 15:5] 56aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: NamespaceRef=NS:1:11 =[16:3 - 16:5] 57aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: NamespaceRef=NS:1:11 =[16:14 - 16:16] 58aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 59aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// RUN: -file-refs-at=%s:2:9 \ 60aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: ClassDecl=C:2:9 (Definition) 61aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: ClassDecl=C:2:9 (Definition) =[2:9 - 2:10] 62aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: CXXConstructor=C:4:5 (Definition) =[4:5 - 4:6] 63aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=class NS::C:2:9 =[9:10 - 9:11] 64aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=class NS::C:2:9 =[10:3 - 10:4] 65aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=class NS::C:2:9 =[15:7 - 15:8] 66aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=class NS::C:2:9 =[16:7 - 16:8] 67aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=class NS::C:2:9 =[16:18 - 16:19] 68aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 69aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// RUN: -file-refs-at=%s:16:18 \ 70aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: CallExpr=C:4:5 71aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: ClassDecl=C:2:9 (Definition) =[2:9 - 2:10] 72aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: CXXConstructor=C:4:5 (Definition) =[4:5 - 4:6] 73aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=class NS::C:2:9 =[9:10 - 9:11] 74aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=class NS::C:2:9 =[10:3 - 10:4] 75aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=class NS::C:2:9 =[15:7 - 15:8] 76aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=class NS::C:2:9 =[16:7 - 16:8] 77aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=class NS::C:2:9 =[16:18 - 16:19] 78aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 79aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// RUN: -file-refs-at=%s:20:8 \ 80aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: FunctionDecl=over:20:6 81aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: FunctionDecl=over:20:6 =[20:6 - 20:10] 82aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: DeclRefExpr=over:20:6 =[24:3 - 24:7] 83aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 84aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// RUN: -file-refs-at=%s:28:1 \ 85aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=T:27:20 86aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// FIXME: Missing TemplateTypeParameter=T:27:20 (Definition) 87aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=T:27:20 =[28:1 - 28:2] 88aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=T:27:20 =[28:6 - 28:7] 89aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 90aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// RUN: -file-refs-at=%s:43:14 \ 91aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: CallExpr=S:35:3 92aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: StructDecl=S:34:8 (Definition) =[34:8 - 34:9] 93aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: CXXConstructor=S:35:3 =[35:3 - 35:4] 94aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: CXXConstructor=S:36:3 =[36:3 - 36:4] 95aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=struct Test2::S:34:8 =[39:9 - 39:10] 96aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=struct Test2::S:34:8 =[43:14 - 43:15] 97aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 98aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// RUN: -file-refs-at=%s:44:16 \ 99aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: CallExpr=S:35:3 100aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypedefDecl=Cake:39:11 (Definition) =[39:11 - 39:15] 101aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=Cake:39:11 =[42:3 - 42:7] 102aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// CHECK-NEXT: TypeRef=Cake:39:11 =[44:14 - 44:18] 103aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis 104aed123ec3cc37e457fe20a6158fdadf8849ad916Argyrios Kyrtzidis// RUN: %s | FileCheck %s 105