Frontend: Fix a crash in CC_LOG_DIAGNOSTICS handling.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130909 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Frontend/LogDiagnosticPrinter.cpp b/lib/Frontend/LogDiagnosticPrinter.cpp
index 954bad4..78eb1b2 100644
--- a/lib/Frontend/LogDiagnosticPrinter.cpp
+++ b/lib/Frontend/LogDiagnosticPrinter.cpp
@@ -99,7 +99,7 @@
   DiagnosticClient::HandleDiagnostic(Level, Info);
 
   // Initialize the main file name, if we haven't already fetched it.
-  if (MainFilename.empty()) {
+  if (MainFilename.empty() && Info.hasSourceManager()) {
     const SourceManager &SM = Info.getSourceManager();
     FileID FID = SM.getMainFileID();
     if (!FID.isInvalid()) {
@@ -122,7 +122,7 @@
   // Set the location information.
   DE.Filename = "";
   DE.Line = DE.Column = 0;
-  if (Info.getLocation().isValid()) {
+  if (Info.getLocation().isValid() && Info.hasSourceManager()) {
     const SourceManager &SM = Info.getSourceManager();
     PresumedLoc PLoc = SM.getPresumedLoc(Info.getLocation());