diff --git a/lib/Basic/Diagnostic.cpp b/lib/Basic/Diagnostic.cpp
index 2cd400dbd71f20a783c8ec2994b8a9b3d52726ec..6bdef78c074f7fb4337590a156121689bfeb1af0 100644
--- a/lib/Basic/Diagnostic.cpp
+++ b/lib/Basic/Diagnostic.cpp
@@ -146,9 +146,8 @@ void DiagnosticsEngine::SetDelayedDiagnostic(unsigned DiagID, StringRef Arg1,
 }
 
 void DiagnosticsEngine::ReportDelayed() {
-  unsigned ID = DelayedDiagID;
+  Report(DelayedDiagID) << DelayedDiagArg1 << DelayedDiagArg2;
   DelayedDiagID = 0;
-  Report(ID) << DelayedDiagArg1 << DelayedDiagArg2;
   DelayedDiagArg1.clear();
   DelayedDiagArg2.clear();
 }
diff --git a/test/Index/KeepGoingWithLotsOfErrors.mm b/test/Index/KeepGoingWithLotsOfErrors.mm
deleted file mode 100644
index 014461725bd081b5d410cec4289df250832dc7ad..0000000000000000000000000000000000000000
--- a/test/Index/KeepGoingWithLotsOfErrors.mm
+++ /dev/null
@@ -1,29 +0,0 @@
-// RUN: env CINDEXTEST_KEEP_GOING=1 c-index-test -code-completion-at=%s:25:1 %s
-// Shouldn't crash!
-// This is the minimized test that triggered an infinite loop:
-
-+(BOOL) onEntity {
-}
-
--(const Object &) a_200 {
-}
-
--(int) struct {
-}
-
--(int) bar {
-}
-
--(int) part {
-}
-
-+(some_type_t) piece {
-}
-
-+(void) z_Z_42 {
-  ([self onEntity: [] { 42];
-  } class: ^ {  }
-];
-  [super];
-  BOOL struct;
-}