summaryrefslogtreecommitdiffstats
path: root/clang/tools/c-index-test/c-index-test.c
diff options
context:
space:
mode:
Diffstat (limited to 'clang/tools/c-index-test/c-index-test.c')
-rw-r--r--clang/tools/c-index-test/c-index-test.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/clang/tools/c-index-test/c-index-test.c b/clang/tools/c-index-test/c-index-test.c
index a689dc54e11..afceafab205 100644
--- a/clang/tools/c-index-test/c-index-test.c
+++ b/clang/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);
}
}
OpenPOWER on IntegriCloud