diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-07-06 16:43:36 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-07-06 16:43:36 +0000 |
commit | 30c80fa3eb5cd162699a6a685a21a72e28e4548d (patch) | |
tree | ab0b2d90f8d2def9cf190b31e45ca8cdb3aeea7e /clang/tools/c-index-test/c-index-test.c | |
parent | b4836ea7a8817b7fe02267c94c38ae028ac3b3c1 (diff) | |
download | llvm-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.c | 30 |
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; } /******************************************************************************/ |