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