From a97a5cd59ee5413b457906be416f241a43b42d54 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Tue, 26 Jan 2010 17:55:33 +0000 Subject: Allow the 'visitor' argument to 'perform_test_load()' to be NULL. The utility of this change will be made clearer in a subsequent patch when perform_test_load()' does more than stream the AST. llvm-svn: 94556 --- clang/tools/c-index-test/c-index-test.c | 40 ++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 18 deletions(-) (limited to 'clang/tools/c-index-test/c-index-test.c') diff --git a/clang/tools/c-index-test/c-index-test.c b/clang/tools/c-index-test/c-index-test.c index 222ffbaa635..a5b2f9166b2 100644 --- a/clang/tools/c-index-test/c-index-test.c +++ b/clang/tools/c-index-test/c-index-test.c @@ -303,29 +303,33 @@ enum CXChildVisitResult USRVisitor(CXCursor C, CXCursor parent, static int perform_test_load(CXIndex Idx, CXTranslationUnit TU, const char *filter, const char *prefix, CXCursorVisitor Visitor) { - enum CXCursorKind K = CXCursor_NotImplemented; - enum CXCursorKind *ck = &K; - VisitorData Data; if (prefix) FileCheckPrefix = prefix; + + if (Visitor) { + enum CXCursorKind K = CXCursor_NotImplemented; + enum CXCursorKind *ck = &K; + VisitorData Data; - /* Perform some simple filtering. */ - if (!strcmp(filter, "all") || !strcmp(filter, "local")) ck = NULL; - else if (!strcmp(filter, "category")) K = CXCursor_ObjCCategoryDecl; - else if (!strcmp(filter, "interface")) K = CXCursor_ObjCInterfaceDecl; - else if (!strcmp(filter, "protocol")) K = CXCursor_ObjCProtocolDecl; - else if (!strcmp(filter, "function")) K = CXCursor_FunctionDecl; - else if (!strcmp(filter, "typedef")) K = CXCursor_TypedefDecl; - else if (!strcmp(filter, "scan-function")) Visitor = FunctionScanVisitor; - else { - fprintf(stderr, "Unknown filter for -test-load-tu: %s\n", filter); - return 1; - } + /* Perform some simple filtering. */ + if (!strcmp(filter, "all") || !strcmp(filter, "local")) ck = NULL; + else if (!strcmp(filter, "category")) K = CXCursor_ObjCCategoryDecl; + else if (!strcmp(filter, "interface")) K = CXCursor_ObjCInterfaceDecl; + else if (!strcmp(filter, "protocol")) K = CXCursor_ObjCProtocolDecl; + else if (!strcmp(filter, "function")) K = CXCursor_FunctionDecl; + else if (!strcmp(filter, "typedef")) K = CXCursor_TypedefDecl; + else if (!strcmp(filter, "scan-function")) Visitor = FunctionScanVisitor; + else { + fprintf(stderr, "Unknown filter for -test-load-tu: %s\n", filter); + return 1; + } - Data.TU = TU; - Data.Filter = ck; - clang_visitChildren(clang_getTranslationUnitCursor(TU), Visitor, &Data); + Data.TU = TU; + Data.Filter = ck; + clang_visitChildren(clang_getTranslationUnitCursor(TU), Visitor, &Data); + } + clang_disposeTranslationUnit(TU); return 0; } -- cgit v1.2.3