aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-02-16 01:12:04 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-02-16 01:12:04 +0000
commitf8490eeb966103516da4e3ecb05e1a36b3e6e3ec (patch)
tree30a5938cd0cad7313b16297dba3329e02f57faa0
parentf6e2e0291b8964ed41b4325e21dd90b86e791f10 (diff)
[libclang] Do index statements inside a type source info. rdar://10872758
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150647 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/Index/index-refs.cpp9
-rw-r--r--tools/libclang/IndexTypeSourceInfo.cpp5
2 files changed, 14 insertions, 0 deletions
diff --git a/test/Index/index-refs.cpp b/test/Index/index-refs.cpp
index 35f4fe403c..fa4b4b3a09 100644
--- a/test/Index/index-refs.cpp
+++ b/test/Index/index-refs.cpp
@@ -55,6 +55,12 @@ void foo3() {
TS<int, int> s;
}
+const int array_size = 3;
+typedef int some_arr[array_size];
+
+const int default_param = 3;
+void foo4(int p = default_param);
+
// RUN: c-index-test -index-file %s | FileCheck %s
// CHECK: [indexDeclaration]: kind: namespace | name: NS
// CHECK-NEXT: [indexDeclaration]: kind: variable | name: gx
@@ -98,3 +104,6 @@ void foo3() {
[indexEntityReference]: kind: struct-template-spec | name: TS | USR: c:@S@TS>#I | {{.*}} | loc: 55:3
*/
// CHECK-NEXT: [indexEntityReference]: kind: c++-class-template | name: TS | USR: c:@ST>2#T#T@TS | {{.*}} | loc: 55:3
+
+// CHECK: [indexEntityReference]: kind: variable | name: array_size | {{.*}} | loc: 59:22
+// CHECK: [indexEntityReference]: kind: variable | name: default_param | {{.*}} | loc: 62:19
diff --git a/tools/libclang/IndexTypeSourceInfo.cpp b/tools/libclang/IndexTypeSourceInfo.cpp
index 34acffcf7a..b62d52156b 100644
--- a/tools/libclang/IndexTypeSourceInfo.cpp
+++ b/tools/libclang/IndexTypeSourceInfo.cpp
@@ -85,6 +85,11 @@ public:
}
return true;
}
+
+ bool TraverseStmt(Stmt *S) {
+ IndexCtx.indexBody(S, Parent, ParentDC);
+ return true;
+ }
};
} // anonymous namespace