Author: Youngsuk Kim Date: 2024-06-30T10:02:49-05:00 New Revision: ac84ada9a169a72ad136ef05c2c194f594f24a37
URL: https://github.com/llvm/llvm-project/commit/ac84ada9a169a72ad136ef05c2c194f594f24a37 DIFF: https://github.com/llvm/llvm-project/commit/ac84ada9a169a72ad136ef05c2c194f594f24a37.diff LOG: [clang] Avoid 'raw_string_ostream::str' (NFC) Since `raw_string_ostream` doesn't own the string buffer, it is desirable (in terms of memory safety) for users to directly reference the string buffer rather than use `raw_string_ostream::str()`. Work towards TODO comment to remove `raw_string_ostream::str()`. Added: Modified: clang/lib/Tooling/Transformer/Stencil.cpp clang/unittests/AST/MatchVerifier.h clang/unittests/Interpreter/InterpreterTest.cpp clang/unittests/Tooling/RecursiveASTVisitorTests/DeductionGuide.cpp clang/unittests/Tooling/ReplacementsYamlTest.cpp Removed: ################################################################################ diff --git a/clang/lib/Tooling/Transformer/Stencil.cpp b/clang/lib/Tooling/Transformer/Stencil.cpp index d91c9e0a20cc1..bc4fa6e36057c 100644 --- a/clang/lib/Tooling/Transformer/Stencil.cpp +++ b/clang/lib/Tooling/Transformer/Stencil.cpp @@ -51,7 +51,7 @@ static Error printNode(StringRef Id, const MatchFinder::MatchResult &Match, if (auto Err = NodeOrErr.takeError()) return Err; NodeOrErr->print(Os, PrintingPolicy(Match.Context->getLangOpts())); - *Result += Os.str(); + *Result += Output; return Error::success(); } @@ -371,7 +371,7 @@ class SelectBoundStencil : public clang::transformer::StencilInterface { Stream << ", " << DefaultStencil->toString(); } Stream << ")"; - return Stream.str(); + return Buffer; } private: diff --git a/clang/unittests/AST/MatchVerifier.h b/clang/unittests/AST/MatchVerifier.h index da1e351da4a09..60bb4a8716ae8 100644 --- a/clang/unittests/AST/MatchVerifier.h +++ b/clang/unittests/AST/MatchVerifier.h @@ -209,7 +209,7 @@ class LocationVerifier : public MatchVerifier<NodeType> { << ">, found <"; Loc.print(Msg, *Result.SourceManager); Msg << '>'; - this->setFailure(Msg.str()); + this->setFailure(MsgStr); } } @@ -256,7 +256,7 @@ class RangeVerifier : public MatchVerifier<NodeType> { Msg << '-'; End.print(Msg, *Result.SourceManager); Msg << '>'; - this->setFailure(Msg.str()); + this->setFailure(MsgStr); } } @@ -282,12 +282,12 @@ class DumpVerifier : public MatchVerifier<DynTypedNode> { llvm::raw_string_ostream Dump(DumpStr); Node.dump(Dump, *Result.Context); - if (Dump.str().find(ExpectSubstring) == std::string::npos) { + if (DumpStr.find(ExpectSubstring) == std::string::npos) { std::string MsgStr; llvm::raw_string_ostream Msg(MsgStr); Msg << "Expected dump substring <" << ExpectSubstring << ">, found <" - << Dump.str() << '>'; - this->setFailure(Msg.str()); + << DumpStr << '>'; + this->setFailure(MsgStr); } } @@ -309,12 +309,12 @@ class PrintVerifier : public MatchVerifier<DynTypedNode> { llvm::raw_string_ostream Print(PrintStr); Node.print(Print, Result.Context->getPrintingPolicy()); - if (Print.str() != ExpectString) { + if (PrintStr != ExpectString) { std::string MsgStr; llvm::raw_string_ostream Msg(MsgStr); Msg << "Expected pretty print <" << ExpectString << ">, found <" - << Print.str() << '>'; - this->setFailure(Msg.str()); + << PrintStr << '>'; + this->setFailure(MsgStr); } } diff --git a/clang/unittests/Interpreter/InterpreterTest.cpp b/clang/unittests/Interpreter/InterpreterTest.cpp index bbd854149d5f5..29c5ead60b81e 100644 --- a/clang/unittests/Interpreter/InterpreterTest.cpp +++ b/clang/unittests/Interpreter/InterpreterTest.cpp @@ -101,7 +101,7 @@ TEST_F(InterpreterTest, Errors) { auto Interp = createInterpreter(ExtraArgs, DiagPrinter.get()); auto Err = Interp->Parse("intentional_error v1 = 42; ").takeError(); using ::testing::HasSubstr; - EXPECT_THAT(DiagnosticsOS.str(), + EXPECT_THAT(DiagnosticOutput, HasSubstr("error: unknown type name 'intentional_error'")); EXPECT_EQ("Parsing failed.", llvm::toString(std::move(Err))); @@ -186,7 +186,7 @@ static std::string MangleName(NamedDecl *ND) { std::string mangledName; llvm::raw_string_ostream RawStr(mangledName); MangleC->mangleName(ND, RawStr); - return RawStr.str(); + return mangledName; } TEST_F(InterpreterTest, FindMangledNameSymbol) { diff --git a/clang/unittests/Tooling/RecursiveASTVisitorTests/DeductionGuide.cpp b/clang/unittests/Tooling/RecursiveASTVisitorTests/DeductionGuide.cpp index 274f275ea66a9..cd4bf0eb7bd5a 100644 --- a/clang/unittests/Tooling/RecursiveASTVisitorTests/DeductionGuide.cpp +++ b/clang/unittests/Tooling/RecursiveASTVisitorTests/DeductionGuide.cpp @@ -22,7 +22,7 @@ class DeductionGuideVisitor std::string Storage; llvm::raw_string_ostream Stream(Storage); D->print(Stream); - Match(Stream.str(), D->getLocation()); + Match(Storage, D->getLocation()); return true; } diff --git a/clang/unittests/Tooling/ReplacementsYamlTest.cpp b/clang/unittests/Tooling/ReplacementsYamlTest.cpp index 3328d9bad55c7..9558d7270159f 100644 --- a/clang/unittests/Tooling/ReplacementsYamlTest.cpp +++ b/clang/unittests/Tooling/ReplacementsYamlTest.cpp @@ -43,7 +43,7 @@ TEST(ReplacementsYamlTest, serializesReplacements) { " Length: 2\n" " ReplacementText: 'replacement #2'\n" "...\n", - YamlContentStream.str().c_str()); + YamlContent.c_str()); } TEST(ReplacementsYamlTest, serializesNewLines) { @@ -67,7 +67,7 @@ TEST(ReplacementsYamlTest, serializesNewLines) { " Length: 0\n" " ReplacementText: \"#include <utility>\\n\"\n" "...\n", - YamlContentStream.str().c_str()); + YamlContent.c_str()); } TEST(ReplacementsYamlTest, deserializesReplacements) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits