diff options
| author | Ted Kremenek <kremenek@apple.com> | 2011-12-07 02:08:00 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2011-12-07 02:08:00 +0000 |
| commit | 9c9e81085fdb7c56ea3cd49c0ef462289d5b2ce7 (patch) | |
| tree | 7abb141b3265900ba2b822c303be725da349f9ea | |
| parent | 2cf294a213c01d074c35f1a6d579092da8caa54c (diff) | |
| download | bcm5719-llvm-9c9e81085fdb7c56ea3cd49c0ef462289d5b2ce7.tar.gz bcm5719-llvm-9c9e81085fdb7c56ea3cd49c0ef462289d5b2ce7.zip | |
Tweak serialized diagnostics to support errors with no categories. Fixes <rdar://problem/10538300>.
llvm-svn: 146011
| -rw-r--r-- | clang/test/Misc/serialized-diags-no-category.c | 12 | ||||
| -rw-r--r-- | clang/test/Misc/serialized-diags.c | 2 | ||||
| -rw-r--r-- | clang/tools/libclang/CXLoadedDiagnostic.cpp | 3 |
3 files changed, 15 insertions, 2 deletions
diff --git a/clang/test/Misc/serialized-diags-no-category.c b/clang/test/Misc/serialized-diags-no-category.c new file mode 100644 index 00000000000..9c92ac33309 --- /dev/null +++ b/clang/test/Misc/serialized-diags-no-category.c @@ -0,0 +1,12 @@ +#error foo +#error bar + +// RUN: rm -f %t +// RUN: %clang -ferror-limit=1 -fsyntax-only %s --serialize-diagnostics %t > /dev/null 2>&1 || true +// RUN: c-index-test -read-diagnostics %t 2>&1 | FileCheck %s + +// This test case tests that we can handle both fatal errors and errors without categories. + +// CHECK: {{.*[/\\]}}serialized-diags-no-category.c:1:2: error: #error foo [] +// CHECK: Number of diagnostics: 2 + diff --git a/clang/test/Misc/serialized-diags.c b/clang/test/Misc/serialized-diags.c index 7cdac53b84d..b5b619d655b 100644 --- a/clang/test/Misc/serialized-diags.c +++ b/clang/test/Misc/serialized-diags.c @@ -16,7 +16,7 @@ void qux(int x) { } // RUN: rm -f %t -// RUN: %clang -Wall -fsyntax-only %s --serialize-diagnostics %t 2>&1 /dev/null || true +// RUN: %clang -Wall -fsyntax-only %s --serialize-diagnostics %t > /dev/null 2>&1 || true // RUN: c-index-test -read-diagnostics %t 2>&1 | FileCheck %s // This test case tests that we can handle multiple diagnostics which contain diff --git a/clang/tools/libclang/CXLoadedDiagnostic.cpp b/clang/tools/libclang/CXLoadedDiagnostic.cpp index 61b9e33c2da..b95515e6e22 100644 --- a/clang/tools/libclang/CXLoadedDiagnostic.cpp +++ b/clang/tools/libclang/CXLoadedDiagnostic.cpp @@ -595,7 +595,8 @@ LoadResult DiagLoader::readDiagnosticBlock(llvm::BitstreamCursor &Stream, continue; case serialized_diags::RECORD_CATEGORY: if (readString(TopDiags, TopDiags.Categories, "category", Record, - BlobStart, BlobLen)) + BlobStart, BlobLen, + /* allowEmptyString */ true)) return Failure; continue; |

