Otherwise, LGTM.
================
Comment at: lib/Basic/DiagnosticIDs.cpp:227
@@ +226,3 @@
+static std::pair<unsigned, bool>
+DiagnosticClassCache[diag::DIAG_UPPER_LIMIT] = {};
+
----------------
You need to remove the "= {}" for this to be ok under C++98.
http://llvm-reviews.chandlerc.com/D197