Give SourceManager a Diagnostic object with which to report errors,
and start simplifying the interfaces in SourceManager that can fail.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98594 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Rewrite/HTMLRewrite.cpp b/lib/Rewrite/HTMLRewrite.cpp
index 6fe3fc0..f325121 100644
--- a/lib/Rewrite/HTMLRewrite.cpp
+++ b/lib/Rewrite/HTMLRewrite.cpp
@@ -22,7 +22,6 @@
 #include "llvm/ADT/OwningPtr.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/raw_ostream.h"
-#include <cstdio>
 using namespace clang;
 
 
@@ -44,15 +43,10 @@
   // Include the whole end token in the range.
   EOffset += Lexer::MeasureTokenLength(E, R.getSourceMgr(), R.getLangOpts());
 
-  llvm::StringRef FileName;
-  std::string ErrorStr;
-  const char *BufferStart = SM.getBufferData(FID, FileName, ErrorStr).first;
-  if (!BufferStart) {
-    // FIXME: Add a diagnostic object somewhere?
-    fprintf(stderr, "error: cannot open file '%s': %s\n", 
-            FileName.str().c_str(), ErrorStr.c_str());
+  bool Invalid = false;
+  const char *BufferStart = SM.getBufferData(FID, &Invalid).first;
+  if (Invalid)
     return;
-  }
   
   HighlightRange(R.getEditBuffer(FID), BOffset, EOffset,
                  BufferStart, StartTag, EndTag);
diff --git a/lib/Rewrite/Rewriter.cpp b/lib/Rewrite/Rewriter.cpp
index 50f9fa1..9744496 100644
--- a/lib/Rewrite/Rewriter.cpp
+++ b/lib/Rewrite/Rewriter.cpp
@@ -18,7 +18,6 @@
 #include "clang/Lex/Lexer.h"
 #include "clang/Basic/SourceManager.h"
 #include "llvm/Support/raw_ostream.h"
-#include <cstdio>
 using namespace clang;
 
 void RewriteBuffer::RemoveText(unsigned OrigOffset, unsigned Size) {
@@ -166,17 +165,7 @@
     return I->second;
   I = RewriteBuffers.insert(I, std::make_pair(FID, RewriteBuffer()));
 
-  llvm::StringRef FileName;
-  std::string ErrorStr;
-  
-  std::pair<const char*, const char*> MB
-    = SourceMgr->getBufferData(FID, FileName, ErrorStr);
-  if (!MB.first) {
-    // FIXME: Add a diagnostic object somewhere?
-    fprintf(stderr, "error: cannot open file '%s': %s\n", 
-            FileName.str().c_str(), ErrorStr.c_str());
-  }
-  
+  std::pair<const char*, const char*> MB = SourceMgr->getBufferData(FID);
   I->second.Initialize(MB.first, MB.second);
 
   return I->second;