diff --git a/clang/lib/Basic/SourceManager.cpp b/clang/lib/Basic/SourceManager.cpp
index b69ba53..ac2fe3d 100644
--- a/clang/lib/Basic/SourceManager.cpp
+++ b/clang/lib/Basic/SourceManager.cpp
@@ -21,6 +21,7 @@
 #include "llvm/System/Path.h"
 #include <algorithm>
 #include <string>
+#include <cstring>
 #include <cstdio>
 
 using namespace clang;
@@ -532,19 +533,17 @@
 }
 
 std::pair<const char*, const char*>
-SourceManager::getBufferData(FileID FID, llvm::StringRef &FileName,
-                             std::string &Error) const {
-  const llvm::MemoryBuffer *Buf = getBuffer(FID).getBuffer(FileName, Error);
-  if (!Error.empty())
-    return std::make_pair((const char *)0, (const char *)0);
-  return std::make_pair(Buf->getBufferStart(), Buf->getBufferEnd());
-}
-
-std::pair<const char*, const char*>
-SourceManager::getBufferData(FileID FID, Diagnostic &Diags) const {
-  const llvm::MemoryBuffer *Buf = getBuffer(FID).getBuffer(Diags);
-  if (!Buf)
-    return std::make_pair((const char *)0, (const char *)0);
+SourceManager::getBufferData(FileID FID, bool *Invalid) const {
+  if (Invalid)
+    *Invalid = false;
+  
+  const llvm::MemoryBuffer *Buf = getBuffer(FID).getBuffer(Diag);
+  if (!Buf) {
+    if (*Invalid)
+      *Invalid = true;
+    const char *FakeText = "";
+    return std::make_pair(FakeText, FakeText + strlen(FakeText));
+  }
   return std::make_pair(Buf->getBufferStart(), Buf->getBufferEnd());
 }
 
