diff options
Diffstat (limited to 'clang/lib/Rewrite/HTMLRewrite.cpp')
-rw-r--r-- | clang/lib/Rewrite/HTMLRewrite.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/clang/lib/Rewrite/HTMLRewrite.cpp b/clang/lib/Rewrite/HTMLRewrite.cpp index 342b0e6ef5e..cf1c779b3ea 100644 --- a/clang/lib/Rewrite/HTMLRewrite.cpp +++ b/clang/lib/Rewrite/HTMLRewrite.cpp @@ -43,8 +43,18 @@ void html::HighlightRange(Rewriter &R, SourceLocation B, SourceLocation E, // 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()); + return; + } + HighlightRange(R.getEditBuffer(FID), BOffset, EOffset, - SM.getBufferData(FID).first, StartTag, EndTag); + BufferStart, StartTag, EndTag); } /// HighlightRange - This is the same as the above method, but takes |