diff options
author | Ted Kremenek <kremenek@apple.com> | 2010-01-16 01:44:12 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2010-01-16 01:44:12 +0000 |
commit | 70ee54258035c860ebc71f7e5f803b74f3186889 (patch) | |
tree | 0b65edfe584a4d15734e7405b8bb0476aa36ec72 /tools/c-index-test/c-index-test.c | |
parent | 0b5716469b4be89adeb15a9819ac82a86ef19ca8 (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.c | 25 |
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); } } |