aboutsummaryrefslogtreecommitdiff
path: root/clang/tools/c-index-test/c-index-test.c
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-07-06 16:43:36 +0000
committerDouglas Gregor <dgregor@apple.com>2011-07-06 16:43:36 +0000
commit30c80fa3eb5cd162699a6a685a21a72e28e4548d (patch)
treeab0b2d90f8d2def9cf190b31e45ca8cdb3aeea7e /clang/tools/c-index-test/c-index-test.c
parentb4836ea7a8817b7fe02267c94c38ae028ac3b3c1 (diff)
downloadllvm-30c80fa3eb5cd162699a6a685a21a72e28e4548d.zip
llvm-30c80fa3eb5cd162699a6a685a21a72e28e4548d.tar.gz
llvm-30c80fa3eb5cd162699a6a685a21a72e28e4548d.tar.bz2
libclang: Allow callers of clang_saveTranslationUnit() to distinguish
between different classes of errors. Addresses most of <rdar://problem/9660328>. llvm-svn: 134495
Diffstat (limited to 'clang/tools/c-index-test/c-index-test.c')
-rw-r--r--clang/tools/c-index-test/c-index-test.c30
1 files changed, 27 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 837fc89..d1bdf96 100644
--- a/clang/tools/c-index-test/c-index-test.c
+++ b/clang/tools/c-index-test/c-index-test.c
@@ -1517,12 +1517,36 @@ int write_pch_file(const char *filename, int argc, const char *argv[]) {
return 1;
}
- if (clang_saveTranslationUnit(TU, filename, clang_defaultSaveOptions(TU)))
- fprintf(stderr, "Unable to write PCH file %s\n", filename);
+ int result = 0;
+
+ switch (clang_saveTranslationUnit(TU, filename,
+ clang_defaultSaveOptions(TU))) {
+ case CXSaveError_None:
+ break;
+
+ case CXSaveError_TranslationErrors:
+ fprintf(stderr, "Unable to write PCH file %s: translation errors\n",
+ filename);
+ result = 2;
+ break;
+
+ case CXSaveError_InvalidTU:
+ fprintf(stderr, "Unable to write PCH file %s: invalid translation unit\n",
+ filename);
+ result = 3;
+ break;
+
+ case CXSaveError_Unknown:
+ default:
+ fprintf(stderr, "Unable to write PCH file %s: unknown error \n", filename);
+ result = 1;
+ break;
+ }
+
clang_disposeTranslationUnit(TU);
free_remapped_files(unsaved_files, num_unsaved_files);
clang_disposeIndex(Idx);
- return 0;
+ return result;
}
/******************************************************************************/