Author: Logan Smith Date: 2021-12-09T16:05:46-08:00 New Revision: 0cf6f7b128dd457711ba5c0ebfcb8143dc1632f8
URL: https://github.com/llvm/llvm-project/commit/0cf6f7b128dd457711ba5c0ebfcb8143dc1632f8 DIFF: https://github.com/llvm/llvm-project/commit/0cf6f7b128dd457711ba5c0ebfcb8143dc1632f8.diff LOG: [NFC][clang] Return underlying strings directly instead of OS.str() This avoids an unnecessary copy required by 'return OS.str()', allowing instead for NRVO or implicit move. The .str() call (which flushes the stream) is no longer required since 65b13610a5226b84889b923bae884ba395ad084d, which made raw_string_ostream unbuffered by default. Differential Revision: https://reviews.llvm.org/D115374 Added: Modified: clang/lib/ASTMatchers/Dynamic/Diagnostics.cpp clang/lib/Basic/SourceLocation.cpp clang/lib/Basic/Version.cpp clang/lib/Frontend/CompilerInvocation.cpp clang/lib/Frontend/TestModuleFileExtension.cpp clang/lib/Rewrite/HTMLRewrite.cpp Removed: ################################################################################ diff --git a/clang/lib/ASTMatchers/Dynamic/Diagnostics.cpp b/clang/lib/ASTMatchers/Dynamic/Diagnostics.cpp index ba2f49e6b6238..41ab0ed70fda4 100644 --- a/clang/lib/ASTMatchers/Dynamic/Diagnostics.cpp +++ b/clang/lib/ASTMatchers/Dynamic/Diagnostics.cpp @@ -204,7 +204,7 @@ std::string Diagnostics::toString() const { std::string S; llvm::raw_string_ostream OS(S); printToStream(OS); - return OS.str(); + return S; } void Diagnostics::printToStreamFull(llvm::raw_ostream &OS) const { @@ -223,7 +223,7 @@ std::string Diagnostics::toStringFull() const { std::string S; llvm::raw_string_ostream OS(S); printToStreamFull(OS); - return OS.str(); + return S; } } // namespace dynamic diff --git a/clang/lib/Basic/SourceLocation.cpp b/clang/lib/Basic/SourceLocation.cpp index 6986fcd322f26..6e5e55fb09cef 100644 --- a/clang/lib/Basic/SourceLocation.cpp +++ b/clang/lib/Basic/SourceLocation.cpp @@ -90,7 +90,7 @@ SourceLocation::printToString(const SourceManager &SM) const { std::string S; llvm::raw_string_ostream OS(S); print(OS, SM); - return OS.str(); + return S; } LLVM_DUMP_METHOD void SourceLocation::dump(const SourceManager &SM) const { @@ -149,7 +149,7 @@ SourceRange::printToString(const SourceManager &SM) const { std::string S; llvm::raw_string_ostream OS(S); print(OS, SM); - return OS.str(); + return S; } //===----------------------------------------------------------------------===// diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp index af3118b0f6da4..e205da7adec1d 100644 --- a/clang/lib/Basic/Version.cpp +++ b/clang/lib/Basic/Version.cpp @@ -82,7 +82,7 @@ std::string getClangFullRepositoryVersion() { OS << LLVMRepo << ' '; OS << LLVMRev << ')'; } - return OS.str(); + return buf; } std::string getClangFullVersion() { @@ -102,7 +102,7 @@ std::string getClangToolFullVersion(StringRef ToolName) { OS << " " << repo; } - return OS.str(); + return buf; } std::string getClangFullCPPVersion() { @@ -120,7 +120,7 @@ std::string getClangFullCPPVersion() { OS << " " << repo; } - return OS.str(); + return buf; } } // end namespace clang diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index f760eb284e75f..5d795bfd37ae7 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -1285,7 +1285,7 @@ static std::string serializeXRayInstrumentationBundle(const XRayInstrSet &S) { std::string Buffer; llvm::raw_string_ostream OS(Buffer); llvm::interleave(BundleParts, OS, [&OS](StringRef Part) { OS << Part; }, ","); - return OS.str(); + return Buffer; } // Set the profile kind using fprofile-instrument-use-path. diff --git a/clang/lib/Frontend/TestModuleFileExtension.cpp b/clang/lib/Frontend/TestModuleFileExtension.cpp index ea737e6891bfe..2d5145d0c54c8 100644 --- a/clang/lib/Frontend/TestModuleFileExtension.cpp +++ b/clang/lib/Frontend/TestModuleFileExtension.cpp @@ -133,5 +133,5 @@ std::string TestModuleFileExtension::str() const { llvm::raw_string_ostream OS(Buffer); OS << BlockName << ":" << MajorVersion << ":" << MinorVersion << ":" << Hashed << ":" << UserInfo; - return OS.str(); + return Buffer; } diff --git a/clang/lib/Rewrite/HTMLRewrite.cpp b/clang/lib/Rewrite/HTMLRewrite.cpp index 371557a624c9c..e9b678b695946 100644 --- a/clang/lib/Rewrite/HTMLRewrite.cpp +++ b/clang/lib/Rewrite/HTMLRewrite.cpp @@ -203,7 +203,7 @@ std::string html::EscapeText(StringRef s, bool EscapeSpaces, bool ReplaceTabs) { } } - return os.str(); + return Str; } static void AddLineNumber(RewriteBuffer &RB, unsigned LineNo, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits