1 | [ |
2 | { |
3 | "directory": ".", |
4 | "command": "/usr/bin/clang++ -fsyntax-only -fno-ms-compatibility -fno-delayed-template-parsing t1.cpp", |
5 | "file": "t1.cpp" |
6 | }, |
7 | { |
8 | "directory": ".", |
9 | "command": "/usr/bin/clang++ -fsyntax-only -fno-ms-compatibility -fno-delayed-template-parsing t2.cpp -DBLAH", |
10 | "file": "t2.cpp" |
11 | }, |
12 | { |
13 | "directory": ".", |
14 | "command": "/usr/bin/clang++ -fsyntax-only -fno-ms-compatibility -fno-delayed-template-parsing t3.cpp -DBLAH", |
15 | "file": "t2.cpp" |
16 | } |
17 | ] |
18 | |
19 | // RUN: c-index-test -index-compile-db %s | FileCheck %s |
20 | |
21 | // CHECK: [startedTranslationUnit] |
22 | // CHECK-NEXT: [enteredMainFile]: t1.cpp |
23 | // CHECK: [indexDeclaration]: kind: c++-instance-method | name: method_decl | {{.*}} | isRedecl: 0 | isDef: 0 | isContainer: 0 |
24 | // CHECK-NEXT: [indexDeclaration]: kind: c++-instance-method | name: method_def1 | {{.*}} | isRedecl: 0 | isDef: 1 | isContainer: 1 |
25 | // CHECK-NEXT: [indexEntityReference]: kind: variable | name: some_val | {{.*}} | loc: ./t.h:9:27 |
26 | // CHECK-NEXT: [indexDeclaration]: kind: c++-instance-method | name: method_def2 | {{.*}} | isRedecl: 0 | isDef: 0 | isContainer: 0 |
27 | // CHECK-NEXT: [indexDeclaration]: kind: c++-instance-method | name: method_def2 | {{.*}} | isRedecl: 1 | isDef: 1 | isContainer: 1 |
28 | // CHECK-NEXT: [indexEntityReference]: kind: namespace | name: NS | |
29 | // CHECK-NEXT: [indexEntityReference]: kind: c++-class | name: C | |
30 | // CHECK-NEXT: [indexEntityReference]: kind: variable | name: some_val | {{.*}} | loc: ./t.h:15:5 |
31 | // CHECK-NEXT: [indexDeclaration]: kind: function | name: foo1 | {{.*}} | isRedecl: 0 | isDef: 1 | isContainer: 1 |
32 | // CHECK-NEXT: [indexEntityReference]: kind: variable | name: some_val | {{.*}} | loc: ./t.h:19:5 |
33 | // CHECK-NEXT: [diagnostic]: {{.*}} undeclared identifier 'undef_val1' |
34 | // CHECK-NEXT: [diagnostic]: {{.*}} undeclared identifier 'undef_val2' |
35 | // CHECK-NEXT: [diagnostic]: {{.*}} undeclared identifier 'undef_val3' |
36 | |
37 | // CHECK-NEXT: [startedTranslationUnit] |
38 | // CHECK-NEXT: [enteredMainFile]: t2.cpp |
39 | // CHECK: [indexDeclaration]: kind: c++-instance-method | name: method_decl | {{.*}} | isRedecl: 0 | isDef: 0 | isContainer: 0 |
40 | // CHECK-NEXT: [indexDeclaration]: kind: c++-instance-method | name: method_def1 | {{.*}} | isRedecl: 0 | isDef: 1 | isContainer: skipped |
41 | // CHECK-NEXT: [indexDeclaration]: kind: c++-instance-method | name: method_def2 | {{.*}} | isRedecl: 0 | isDef: 0 | isContainer: 0 |
42 | // CHECK-NEXT: [indexDeclaration]: kind: c++-instance-method | name: method_def2 | {{.*}} | isContainer: skipped |
43 | // CHECK-NEXT: [indexEntityReference]: kind: namespace | name: NS | |
44 | // CHECK-NEXT: [indexEntityReference]: kind: c++-class | name: C | |
45 | // CHECK-NEXT: [indexDeclaration]: kind: function | name: foo1 | {{.*}} | isRedecl: 0 | isDef: 1 | isContainer: skipped |
46 | // CHECK-NEXT: [ppIncludedFile]: ./pragma_once.h |
47 | // CHECK-NEXT: [indexDeclaration]: kind: function | name: foo2 | {{.*}} | isRedecl: 0 | isDef: 1 | isContainer: 1 |
48 | // CHECK-NEXT: [indexEntityReference]: kind: variable | name: some_val | {{.*}} | loc: ./t.h:25:5 |
49 | // CHECK: [indexDeclaration]: kind: c++-instance-method | name: tsmeth | {{.*}} | isRedecl: 0 | isDef: 1 | isContainer: 1 |
50 | // CHECK-NEXT: [indexEntityReference]: kind: variable | name: some_val | {{.*}} | loc: ./pragma_once.h:8:7 |
51 | // CHECK: [indexDeclaration]: kind: function | name: imp_foo | {{.*}} | isRedecl: 0 | isDef: 1 | isContainer: 1 |
52 | // CHECK-NEXT: [indexEntityReference]: kind: variable | name: some_val | {{.*}} | loc: ./imported.h:4:5 |
53 | // CHECK-NEXT: [diagnostic]: {{.*}} undeclared identifier 'undef_val4' |
54 | // CHECK-NEXT: [diagnostic]: {{.*}} undeclared identifier 'undef_tsval' |
55 | // CHECK-NEXT: [diagnostic]: {{.*}} undeclared identifier 'undef_impval' |
56 | |
57 | // CHECK-NEXT: [startedTranslationUnit] |
58 | // CHECK-NEXT: [enteredMainFile]: t3.cpp |
59 | // CHECK: [indexDeclaration]: kind: c++-instance-method | name: method_decl | {{.*}} | isRedecl: 0 | isDef: 0 | isContainer: 0 |
60 | // CHECK-NEXT: [indexDeclaration]: kind: c++-instance-method | name: method_def1 | {{.*}} | isRedecl: 0 | isDef: 1 | isContainer: skipped |
61 | // CHECK-NEXT: [indexDeclaration]: kind: c++-instance-method | name: method_def2 | {{.*}} | isRedecl: 0 | isDef: 0 | isContainer: 0 |
62 | // CHECK-NEXT: [indexDeclaration]: kind: c++-instance-method | name: method_def2 | {{.*}} | isRedecl: 1 | isDef: 1 | isContainer: skipped |
63 | // CHECK-NEXT: [indexEntityReference]: kind: namespace | name: NS | |
64 | // CHECK-NEXT: [indexEntityReference]: kind: c++-class | name: C | |
65 | // CHECK-NEXT: [indexDeclaration]: kind: function | name: foo1 | {{.*}} | isRedecl: 0 | isDef: 1 | isContainer: skipped |
66 | // CHECK-NEXT: [ppIncludedFile]: ./pragma_once.h |
67 | // CHECK-NEXT: [indexDeclaration]: kind: function | name: foo2 | {{.*}} | isRedecl: 0 | isDef: 1 | isContainer: skipped |
68 | // CHECK-NEXT: [indexDeclaration]: kind: variable | {{.*}} | loc: ./pragma_once.h:3:12 |
69 | // CHECK: [indexDeclaration]: kind: c++-instance-method | name: tsmeth | {{.*}} | isRedecl: 0 | isDef: 1 | isContainer: skipped |
70 | // CHECK-NOT: [indexEntityReference]: kind: variable | name: some_val | |
71 | // CHECK: [indexDeclaration]: kind: function | name: imp_foo | {{.*}} | isRedecl: 0 | isDef: 1 | isContainer: skipped |
72 | // CHECK-NOT: [indexEntityReference]: kind: variable | name: some_val | |
73 | // CHECK-NOT: [diagnostic]: {{.*}} undeclared identifier |
74 | |