aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2012-07-05 08:20:49 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2012-07-05 08:20:49 +0000
commite07c5f897e8da88959c93a9d98f1b441da649eb6 (patch)
tree157aabd619cf8b1a4c7c8cc857b4561eadee2584
parenta13d2bceaea04cb7c16b4cfbeb06f12f8e90c6c9 (diff)
Fix some memory leaks found by the static analyzer. Thanks to John Smith for running it over Clang.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159732 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--tools/c-index-test/c-index-test.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/tools/c-index-test/c-index-test.c b/tools/c-index-test/c-index-test.c
index e16be7d185..b3b5b8447f 100644
--- a/tools/c-index-test/c-index-test.c
+++ b/tools/c-index-test/c-index-test.c
@@ -157,6 +157,7 @@ int parse_remapped_files(int argc, const char **argv, int start_arg,
(feof(to_file) ? "EOF" : "error"), semi + 1);
fclose(to_file);
free_remapped_files(*unsaved_files, i);
+ free(contents);
*unsaved_files = 0;
*num_unsaved_files = 0;
return -1;
@@ -2281,8 +2282,10 @@ int perform_token_annotation(int argc, const char **argv) {
&second_line, &second_column)))
return errorCode;
- if (parse_remapped_files(argc, argv, 2, &unsaved_files, &num_unsaved_files))
+ if (parse_remapped_files(argc, argv, 2, &unsaved_files, &num_unsaved_files)) {
+ free(filename);
return -1;
+ }
CIdx = clang_createIndex(0, 1);
TU = clang_parseTranslationUnit(CIdx, argv[argc - 1],
@@ -2300,8 +2303,10 @@ int perform_token_annotation(int argc, const char **argv) {
}
errorCode = 0;
- if (checkForErrors(TU) != 0)
- return -1;
+ if (checkForErrors(TU) != 0) {
+ errorCode = -1;
+ goto teardown;
+ }
if (getenv("CINDEXTEST_EDITING")) {
for (i = 0; i < 5; ++i) {