From c3526d89ef9c31639ec8b25180cfb22354344241 Mon Sep 17 00:00:00 2001 From: Sebastian Redl Date: Thu, 30 Sep 2010 01:03:03 +0000 Subject: [PATCH] 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 --- lib/Lex/Lexer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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); -- 2.40.0