From: Sebastian Redl Date: Thu, 30 Sep 2010 01:03:03 +0000 (+0000) Subject: In MeasureTokenLength, the FileLoc supplied to the lexer must point to the start... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c3526d89ef9c31639ec8b25180cfb22354344241;p=clang In MeasureTokenLength, the FileLoc supplied to the lexer must point to the start of the buffer, or we risk overflow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115117 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Lex/Lexer.cpp b/lib/Lex/Lexer.cpp index 917829be47..519dd82285 100644 --- a/lib/Lex/Lexer.cpp +++ b/lib/Lex/Lexer.cpp @@ -242,7 +242,8 @@ unsigned Lexer::MeasureTokenLength(SourceLocation Loc, return 0; // Create a lexer starting at the beginning of this token. - Lexer TheLexer(Loc, LangOpts, Buffer.begin(), StrData, Buffer.end()); + Lexer TheLexer(SM.getLocForStartOfFile(LocInfo.first), LangOpts, + Buffer.begin(), StrData, Buffer.end()); TheLexer.SetCommentRetentionState(true); Token TheTok; TheLexer.LexFromRawLexer(TheTok);