diff options
Diffstat (limited to 'lib/Lex/Lexer.cpp')
-rw-r--r-- | lib/Lex/Lexer.cpp | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/lib/Lex/Lexer.cpp b/lib/Lex/Lexer.cpp index 704c4db661..c5b36fce61 100644 --- a/lib/Lex/Lexer.cpp +++ b/lib/Lex/Lexer.cpp @@ -124,15 +124,9 @@ Lexer::Lexer(SourceLocation fileloc, Preprocessor &PP, /// suitable for calls to 'LexRawToken'. This lexer assumes that the text /// range will outlive it, so it doesn't take ownership of it. Lexer::Lexer(SourceLocation fileloc, const LangOptions &features, - const char *BufPtr, const char *BufEnd, - const llvm::MemoryBuffer *FromFile) + const char *BufStart, const char *BufPtr, const char *BufEnd) : FileLoc(fileloc), Features(features) { - // If a MemoryBuffer was specified, use its start as BufferStart. This affects - // the source location objects produced by this lexer. - const char *BufStart = BufPtr; - if (FromFile) BufStart = FromFile->getBufferStart(); - InitLexer(BufStart, BufPtr, BufEnd); // We *are* in raw mode. @@ -197,7 +191,7 @@ unsigned Lexer::MeasureTokenLength(SourceLocation Loc, // all obviously single-char tokens. This could use // Lexer::isObviouslySimpleCharacter for example to handle identifiers or // something. - const char *BufEnd = SM.getBufferData(Loc).second; + std::pair<const char *,const char *> Buffer = SM.getBufferData(Loc); // Create a langops struct and enable trigraphs. This is sufficient for // measuring tokens. @@ -205,7 +199,7 @@ unsigned Lexer::MeasureTokenLength(SourceLocation Loc, LangOpts.Trigraphs = true; // Create a lexer starting at the beginning of this token. - Lexer TheLexer(Loc, LangOpts, StrData, BufEnd); + Lexer TheLexer(Loc, LangOpts, Buffer.first, StrData, Buffer.second); Token TheTok; TheLexer.LexFromRawLexer(TheTok); return TheTok.getLength(); |