@@ -291,7 +291,7 @@ void Lexer::formToken(tok Kind, const char *TokStart) {
291
291
StringRef TokenText { TokStart, static_cast <size_t >(CurPtr - TokStart) };
292
292
293
293
if (TriviaRetention == TriviaRetentionMode::WithTrivia && Kind != tok::eof) {
294
- TrailingTrivia = lexTrivia (/* IsForTrailingTrivia=*/ true );
294
+ TrailingTrivia = lexTrivia (/* IsForTrailingTrivia=*/ true , CurPtr );
295
295
} else {
296
296
TrailingTrivia = StringRef ();
297
297
}
@@ -2344,11 +2344,8 @@ void Lexer::lexImpl() {
2344
2344
NextToken.setAtStartOfLine (false );
2345
2345
}
2346
2346
2347
- // Advance CurPtr to the end of the first trivia in the source file and form
2348
- // the leading trivia including the BOM
2349
- lexTrivia (/* IsForTrailingTrivia=*/ false );
2350
- LeadingTrivia = StringRef (LeadingTriviaStart, CurPtr - LeadingTriviaStart);
2351
-
2347
+ LeadingTrivia = lexTrivia (/* IsForTrailingTrivia=*/ false , LeadingTriviaStart);
2348
+
2352
2349
// Remember the start of the token so we can form the text range.
2353
2350
const char *TokStart = CurPtr;
2354
2351
@@ -2525,8 +2522,8 @@ Token Lexer::getTokenAtLocation(const SourceManager &SM, SourceLoc Loc,
2525
2522
return L.peekNextToken ();
2526
2523
}
2527
2524
2528
- StringRef Lexer::lexTrivia (bool IsForTrailingTrivia) {
2529
- const char *AllTriviaStart = CurPtr;
2525
+ StringRef Lexer::lexTrivia (bool IsForTrailingTrivia,
2526
+ const char *AllTriviaStart) {
2530
2527
CommentStart = nullptr ;
2531
2528
2532
2529
Restart:
0 commit comments