summaryrefslogtreecommitdiffstats
path: root/clang/tools/c-index-test/c-index-test.c
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2010-02-11 07:41:25 +0000
committerTed Kremenek <kremenek@apple.com>2010-02-11 07:41:25 +0000
commit50228be0f3cf4d01d9ac7db410f829875531d2be (patch)
treea73bc916e2fb2afdd11a6100641944b4c641389b /clang/tools/c-index-test/c-index-test.c
parent510ee2594ec2626df14aa57b4d1a38c7d8bc2420 (diff)
downloadbcm5719-llvm-50228be0f3cf4d01d9ac7db410f829875531d2be.tar.gz
bcm5719-llvm-50228be0f3cf4d01d9ac7db410f829875531d2be.zip
Attempt to always dispose of the CXIndex object in c-index-test.
llvm-svn: 95864
Diffstat (limited to 'clang/tools/c-index-test/c-index-test.c')
-rw-r--r--clang/tools/c-index-test/c-index-test.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/clang/tools/c-index-test/c-index-test.c b/clang/tools/c-index-test/c-index-test.c
index 26df528ca65..b33b0f4aa77 100644
--- a/clang/tools/c-index-test/c-index-test.c
+++ b/clang/tools/c-index-test/c-index-test.c
@@ -493,13 +493,18 @@ int perform_test_load_tu(const char *file, const char *filter,
PostVisitTU PV) {
CXIndex Idx;
CXTranslationUnit TU;
+ int result;
Idx = clang_createIndex(/* excludeDeclsFromPCH */
!strcmp(filter, "local") ? 1 : 0);
- if (!CreateTranslationUnit(Idx, file, &TU))
+ if (!CreateTranslationUnit(Idx, file, &TU)) {
+ clang_disposeIndex(Idx);
return 1;
+ }
- return perform_test_load(Idx, TU, filter, prefix, Visitor, PV);
+ result = perform_test_load(Idx, TU, filter, prefix, Visitor, PV);
+ clang_disposeIndex(Idx);
+ return result;
}
int perform_test_load_source(int argc, const char **argv,
@@ -519,8 +524,10 @@ int perform_test_load_source(int argc, const char **argv,
if (UseExternalASTs && strlen(UseExternalASTs))
clang_setUseExternalASTGeneration(Idx, 1);
- if (parse_remapped_files(argc, argv, 0, &unsaved_files, &num_unsaved_files))
+ if (parse_remapped_files(argc, argv, 0, &unsaved_files, &num_unsaved_files)) {
+ clang_disposeIndex(Idx);
return -1;
+ }
TU = clang_createTranslationUnitFromSourceFile(Idx, 0,
argc - num_unsaved_files,
@@ -531,11 +538,13 @@ int perform_test_load_source(int argc, const char **argv,
stderr);
if (!TU) {
fprintf(stderr, "Unable to load translation unit!\n");
+ clang_disposeIndex(Idx);
return 1;
}
result = perform_test_load(Idx, TU, filter, NULL, Visitor, PV);
free_remapped_files(unsaved_files, num_unsaved_files);
+ clang_disposeIndex(Idx);
return result;
}
OpenPOWER on IntegriCloud