Tweak serialized diagnostics to support errors with no categories. Fixes <rdar://problem/10538300>.

llvm-svn: 146011
This commit is contained in:
Ted Kremenek 2011-12-07 02:08:00 +00:00
parent 2cf294a213
commit 9c9e81085f
3 changed files with 15 additions and 2 deletions

View File

@ -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

View File

@ -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

View File

@ -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;