• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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