aboutsummaryrefslogtreecommitdiff
path: root/tools/c-index-test/c-index-test.c
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2010-01-16 01:44:12 +0000
committerTed Kremenek <kremenek@apple.com>2010-01-16 01:44:12 +0000
commit70ee54258035c860ebc71f7e5f803b74f3186889 (patch)
tree0b65edfe584a4d15734e7405b8bb0476aa36ec72 /tools/c-index-test/c-index-test.c
parent0b5716469b4be89adeb15a9819ac82a86ef19ca8 (diff)
Remove TranslateKind and centralize Decl -> CXCursorKind in GetCursorKind(). This revealed a bunch of inconsistencies in how CXCursorKinds were being computed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93618 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/c-index-test/c-index-test.c')
-rw-r--r--tools/c-index-test/c-index-test.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/tools/c-index-test/c-index-test.c b/tools/c-index-test/c-index-test.c
index a689dc54e1..afceafab20 100644
--- a/tools/c-index-test/c-index-test.c
+++ b/tools/c-index-test/c-index-test.c
@@ -74,7 +74,10 @@ static const char* GetCursorSource(CXCursor Cursor) {
static const char *FileCheckPrefix = "CHECK";
static void PrintDeclExtent(CXDecl Dcl) {
- CXSourceExtent extent = clang_getDeclExtent(Dcl);
+ CXSourceExtent extent;
+ if (!Dcl)
+ return;
+ extent = clang_getDeclExtent(Dcl);
printf(" [Extent=%d:%d:%d:%d]", extent.begin.line, extent.begin.column,
extent.end.line, extent.end.column);
}
@@ -101,6 +104,7 @@ static void DeclVisitor(CXDecl Dcl, CXCursor Cursor, CXClientData Filter) {
static void TranslationUnitVisitor(CXTranslationUnit Unit, CXCursor Cursor,
CXClientData Filter) {
if (!Filter || (Cursor.kind == *(enum CXCursorKind *)Filter)) {
+ CXDecl D;
CXString string;
printf("// %s: %s:%d:%d: ", FileCheckPrefix,
GetCursorSource(Cursor), clang_getCursorLine(Cursor),
@@ -111,11 +115,15 @@ static void TranslationUnitVisitor(CXTranslationUnit Unit, CXCursor Cursor,
basename(clang_getCString(string)));
clang_disposeString(string);
- PrintDeclExtent(Cursor.data[0]);
-
- printf("\n");
+ D = clang_getCursorDecl(Cursor);
+ if (!D) {
+ printf("\n");
+ return;
+ }
- clang_loadDeclaration(Cursor.data[0], DeclVisitor, 0);
+ PrintDeclExtent(D);
+ printf("\n");
+ clang_loadDeclaration(D, DeclVisitor, 0);
}
}
@@ -179,10 +187,11 @@ static void USRDeclVisitor(CXDecl D, CXCursor C, CXClientData Filter) {
}
static void USRVisitor(CXTranslationUnit Unit, CXCursor Cursor,
- CXClientData Filter) {
- if (Cursor.data[0]) {
+ CXClientData Filter) {
+ CXDecl D = clang_getCursorDecl(Cursor);
+ if (D) {
/* USRDeclVisitor(Unit, Cursor.decl, Cursor, Filter);*/
- clang_loadDeclaration(Cursor.data[0], USRDeclVisitor, 0);
+ clang_loadDeclaration(D, USRDeclVisitor, 0);
}
}