[libclang] Create a diagnostic set to pass at the end of indexing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145557 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/c-index-test/c-index-test.c b/tools/c-index-test/c-index-test.c
index 472c0b0..903bfc5 100644
--- a/tools/c-index-test/c-index-test.c
+++ b/tools/c-index-test/c-index-test.c
@@ -1702,21 +1702,27 @@
 }
 
 static void index_diagnostic(CXClientData client_data,
-                             CXDiagnostic diag, void *reserved) {
+                             CXDiagnosticSet diagSet, void *reserved) {
   CXString str;
   const char *cstr;
+  unsigned numDiags, i;
+  CXDiagnostic diag;
   IndexData *index_data;
   index_data = (IndexData *)client_data;
   printCheck(index_data);
 
-  str = clang_formatDiagnostic(diag, clang_defaultDiagnosticDisplayOptions());
-  cstr = clang_getCString(str);
-  printf("[diagnostic]: %s\n", cstr);
-  clang_disposeString(str);  
-
-  if (getenv("CINDEXTEST_FAILONERROR") &&
-      clang_getDiagnosticSeverity(diag) >= CXDiagnostic_Error) {
-    index_data->fail_for_error = 1;
+  numDiags = clang_getNumDiagnosticsInSet(diagSet);
+  for (i = 0; i != numDiags; ++i) {
+    diag = clang_getDiagnosticInSet(diagSet, i);
+    str = clang_formatDiagnostic(diag, clang_defaultDiagnosticDisplayOptions());
+    cstr = clang_getCString(str);
+    printf("[diagnostic]: %s\n", cstr);
+    clang_disposeString(str);  
+  
+    if (getenv("CINDEXTEST_FAILONERROR") &&
+        clang_getDiagnosticSeverity(diag) >= CXDiagnostic_Error) {
+      index_data->fail_for_error = 1;
+    }
   }
 }