From 374b3837d676133fcc1eb70a25c8baf8ec4a5c4a Mon Sep 17 00:00:00 2001 From: Dmitri Gribenko Date: Mon, 24 Sep 2012 21:07:17 +0000 Subject: [PATCH] StringRef'ize Preprocessor::CreateString(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164555 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Lex/Preprocessor.h | 2 +- lib/Lex/Lexer.cpp | 2 +- lib/Lex/MacroArgs.cpp | 2 +- lib/Lex/PPMacroExpansion.cpp | 9 +++------ lib/Lex/Pragma.cpp | 4 ++-- lib/Lex/Preprocessor.cpp | 8 ++++---- lib/Lex/TokenLexer.cpp | 2 +- 7 files changed, 13 insertions(+), 16 deletions(-) diff --git a/include/clang/Lex/Preprocessor.h b/include/clang/Lex/Preprocessor.h index 19f7916a59..0ddf82e5df 100644 --- a/include/clang/Lex/Preprocessor.h +++ b/include/clang/Lex/Preprocessor.h @@ -907,7 +907,7 @@ public: /// CreateString - Plop the specified string into a scratch buffer and set the /// specified token's location and length to it. If specified, the source /// location provides a location of the expansion point of the token. - void CreateString(const char *Buf, unsigned Len, Token &Tok, + void CreateString(StringRef Str, Token &Tok, SourceLocation ExpansionLocStart = SourceLocation(), SourceLocation ExpansionLocEnd = SourceLocation()); diff --git a/lib/Lex/Lexer.cpp b/lib/Lex/Lexer.cpp index ebb3b6a9a2..6ac3f3fafc 100644 --- a/lib/Lex/Lexer.cpp +++ b/lib/Lex/Lexer.cpp @@ -2048,7 +2048,7 @@ bool Lexer::SaveBCPLComment(Token &Result, const char *CurPtr) { Spelling += "*/"; // add suffix. Result.setKind(tok::comment); - PP->CreateString(&Spelling[0], Spelling.size(), Result, + PP->CreateString(Spelling, Result, Result.getLocation(), Result.getLocation()); return true; } diff --git a/lib/Lex/MacroArgs.cpp b/lib/Lex/MacroArgs.cpp index e2b251a449..ed8873d086 100644 --- a/lib/Lex/MacroArgs.cpp +++ b/lib/Lex/MacroArgs.cpp @@ -291,7 +291,7 @@ Token MacroArgs::StringifyArgument(const Token *ArgToks, } } - PP.CreateString(&Result[0], Result.size(), Tok, + PP.CreateString(Result, Tok, ExpansionLocStart, ExpansionLocEnd); return Tok; } diff --git a/lib/Lex/PPMacroExpansion.cpp b/lib/Lex/PPMacroExpansion.cpp index 2067ec8884..839cec0744 100644 --- a/lib/Lex/PPMacroExpansion.cpp +++ b/lib/Lex/PPMacroExpansion.cpp @@ -595,10 +595,9 @@ static void ComputeDATE_TIME(SourceLocation &DATELoc, SourceLocation &TIMELoc, llvm::raw_svector_ostream TmpStream(TmpBuffer); TmpStream << llvm::format("\"%s %2d %4d\"", Months[TM->tm_mon], TM->tm_mday, TM->tm_year + 1900); - StringRef DateStr = TmpStream.str(); Token TmpTok; TmpTok.startToken(); - PP.CreateString(DateStr.data(), DateStr.size(), TmpTok); + PP.CreateString(TmpStream.str(), TmpTok); DATELoc = TmpTok.getLocation(); } @@ -607,10 +606,9 @@ static void ComputeDATE_TIME(SourceLocation &DATELoc, SourceLocation &TIMELoc, llvm::raw_svector_ostream TmpStream(TmpBuffer); TmpStream << llvm::format("\"%02d:%02d:%02d\"", TM->tm_hour, TM->tm_min, TM->tm_sec); - StringRef TimeStr = TmpStream.str(); Token TmpTok; TmpTok.startToken(); - PP.CreateString(TimeStr.data(), TimeStr.size(), TmpTok); + PP.CreateString(TmpStream.str(), TmpTok); TIMELoc = TmpTok.getLocation(); } } @@ -1167,8 +1165,7 @@ void Preprocessor::ExpandBuiltinMacro(Token &Tok) { } else { llvm_unreachable("Unknown identifier!"); } - CreateString(OS.str().data(), OS.str().size(), Tok, - Tok.getLocation(), Tok.getLocation()); + CreateString(OS.str(), Tok, Tok.getLocation(), Tok.getLocation()); } void Preprocessor::markMacroAsUsed(MacroInfo *MI) { diff --git a/lib/Lex/Pragma.cpp b/lib/Lex/Pragma.cpp index 62ef8bfbcd..b5bc9583f6 100644 --- a/lib/Lex/Pragma.cpp +++ b/lib/Lex/Pragma.cpp @@ -251,7 +251,7 @@ void Preprocessor::Handle_Pragma(Token &Tok) { // where we can lex it. Token TmpTok; TmpTok.startToken(); - CreateString(&StrVal[0], StrVal.size(), TmpTok); + CreateString(StrVal, TmpTok); SourceLocation TokLoc = TmpTok.getLocation(); // Make and enter a lexer object so that we lex and expand the tokens just @@ -683,7 +683,7 @@ IdentifierInfo *Preprocessor::ParsePragmaPushOrPopMacro(Token &Tok) { Token MacroTok; MacroTok.startToken(); MacroTok.setKind(tok::raw_identifier); - CreateString(&StrVal[1], StrVal.size() - 2, MacroTok); + CreateString(StringRef(&StrVal[1], StrVal.size() - 2), MacroTok); // Get the IdentifierInfo of MacroToPushTok. return LookUpIdentifierInfo(MacroTok); diff --git a/lib/Lex/Preprocessor.cpp b/lib/Lex/Preprocessor.cpp index 614530cf38..9fa3aabe4c 100644 --- a/lib/Lex/Preprocessor.cpp +++ b/lib/Lex/Preprocessor.cpp @@ -378,17 +378,17 @@ StringRef Preprocessor::getSpelling(const Token &Tok, /// CreateString - Plop the specified string into a scratch buffer and return a /// location for it. If specified, the source location provides a source /// location for the token. -void Preprocessor::CreateString(const char *Buf, unsigned Len, Token &Tok, +void Preprocessor::CreateString(StringRef Str, Token &Tok, SourceLocation ExpansionLocStart, SourceLocation ExpansionLocEnd) { - Tok.setLength(Len); + Tok.setLength(Str.size()); const char *DestPtr; - SourceLocation Loc = ScratchBuf->getToken(Buf, Len, DestPtr); + SourceLocation Loc = ScratchBuf->getToken(Str.data(), Str.size(), DestPtr); if (ExpansionLocStart.isValid()) Loc = SourceMgr.createExpansionLoc(Loc, ExpansionLocStart, - ExpansionLocEnd, Len); + ExpansionLocEnd, Str.size()); Tok.setLocation(Loc); // If this is a raw identifier or a literal token, set the pointer data. diff --git a/lib/Lex/TokenLexer.cpp b/lib/Lex/TokenLexer.cpp index de704ee3d7..379b5f3ec8 100644 --- a/lib/Lex/TokenLexer.cpp +++ b/lib/Lex/TokenLexer.cpp @@ -501,7 +501,7 @@ bool TokenLexer::PasteTokens(Token &Tok) { // Claim that the tmp token is a string_literal so that we can get the // character pointer back from CreateString in getLiteralData(). ResultTokTmp.setKind(tok::string_literal); - PP.CreateString(&Buffer[0], Buffer.size(), ResultTokTmp); + PP.CreateString(Buffer, ResultTokTmp); SourceLocation ResultTokLoc = ResultTokTmp.getLocation(); ResultTokStrPtr = ResultTokTmp.getLiteralData(); -- 2.40.0