Author: Youngsuk Kim Date: 2024-07-04T21:59:19-05:00 New Revision: 9e211744b82a72e08c137f75b1c671713e2891af
URL: https://github.com/llvm/llvm-project/commit/9e211744b82a72e08c137f75b1c671713e2891af DIFF: https://github.com/llvm/llvm-project/commit/9e211744b82a72e08c137f75b1c671713e2891af.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 item to remove `raw_string_ostream::str()`. Added: Modified: clang/lib/InstallAPI/DiagnosticBuilderWrappers.cpp clang/unittests/Frontend/CompilerInstanceTest.cpp clang/unittests/Tooling/LexicallyOrderedRecursiveASTVisitorTest.cpp clang/utils/TableGen/ClangAttrEmitter.cpp Removed: ################################################################################ diff --git a/clang/lib/InstallAPI/DiagnosticBuilderWrappers.cpp b/clang/lib/InstallAPI/DiagnosticBuilderWrappers.cpp index cc252d51e3b67..c8d07f229902b 100644 --- a/clang/lib/InstallAPI/DiagnosticBuilderWrappers.cpp +++ b/clang/lib/InstallAPI/DiagnosticBuilderWrappers.cpp @@ -48,7 +48,7 @@ const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, Stream << PV.second.getAsString(); }); Stream << " ]"; - DB.AddString(Stream.str()); + DB.AddString(PlatformAsString); return DB; } @@ -91,7 +91,7 @@ const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, std::string VersionString; raw_string_ostream OS(VersionString); OS << Version; - DB.AddString(OS.str()); + DB.AddString(VersionString); return DB; } @@ -102,7 +102,7 @@ operator<<(const clang::DiagnosticBuilder &DB, raw_string_ostream OS(IFAsString); OS << LibAttr.getKey() << " [ " << LibAttr.getValue() << " ]"; - DB.AddString(OS.str()); + DB.AddString(IFAsString); return DB; } diff --git a/clang/unittests/Frontend/CompilerInstanceTest.cpp b/clang/unittests/Frontend/CompilerInstanceTest.cpp index a28d72e7d9531..8bc705dd21993 100644 --- a/clang/unittests/Frontend/CompilerInstanceTest.cpp +++ b/clang/unittests/Frontend/CompilerInstanceTest.cpp @@ -91,7 +91,7 @@ TEST(CompilerInstance, AllowDiagnosticLogWithUnownedDiagnosticConsumer) { DiagOpts, DiagPrinter.get(), /*ShouldOwnClient=*/false); Diags->Report(diag::err_expected) << "no crash"; - ASSERT_EQ(DiagnosticsOS.str(), "error: expected no crash\n"); + ASSERT_EQ(DiagnosticOutput, "error: expected no crash\n"); } } // anonymous namespace diff --git a/clang/unittests/Tooling/LexicallyOrderedRecursiveASTVisitorTest.cpp b/clang/unittests/Tooling/LexicallyOrderedRecursiveASTVisitorTest.cpp index 38079f706f398..5d16595aec801 100644 --- a/clang/unittests/Tooling/LexicallyOrderedRecursiveASTVisitorTest.cpp +++ b/clang/unittests/Tooling/LexicallyOrderedRecursiveASTVisitorTest.cpp @@ -87,7 +87,7 @@ bool LexicallyOrderedDeclVisitor::VisitNamedDecl(const NamedDecl *D) { } if (EmitDeclIndices) OS << "@" << Index++; - Matcher.match(OS.str(), D); + Matcher.match(Path, D); return true; } @@ -96,7 +96,7 @@ bool LexicallyOrderedDeclVisitor::VisitDeclRefExpr(const DeclRefExpr *D) { llvm::raw_string_ostream OS(Name); if (EmitStmtIndices) OS << "@" << Index++; - Matcher.match(OS.str(), D); + Matcher.match(Name, D); return true; } diff --git a/clang/utils/TableGen/ClangAttrEmitter.cpp b/clang/utils/TableGen/ClangAttrEmitter.cpp index 7bf6091e63d18..1f83440680330 100644 --- a/clang/utils/TableGen/ClangAttrEmitter.cpp +++ b/clang/utils/TableGen/ClangAttrEmitter.cpp @@ -4786,7 +4786,7 @@ void EmitClangAttrParsedAttrImpl(RecordKeeper &Records, raw_ostream &OS) { // Write out the declaration merging check logic. OS << "static bool DiagnoseMutualExclusions(Sema &S, const NamedDecl *D, " << "const Attr *A) {\n"; - OS << MergeDeclOS.str(); + OS << DeclMergeChecks; OS << " return true;\n"; OS << "}\n\n"; @@ -4796,7 +4796,7 @@ void EmitClangAttrParsedAttrImpl(RecordKeeper &Records, raw_ostream &OS) { OS << "static bool DiagnoseMutualExclusions(Sema &S, " << "const SmallVectorImpl<const Attr *> &C) {\n"; OS << " for (const Attr *A : C) {\n"; - OS << MergeStmtOS.str(); + OS << StmtMergeChecks; OS << " }\n"; OS << " return true;\n"; OS << "}\n\n"; @@ -4939,7 +4939,7 @@ void EmitClangAttrTextNodeDump(RecordKeeper &Records, raw_ostream &OS) { if (!Args.empty()) OS << " const auto *SA = cast<" << R.getName() << "Attr>(A); (void)SA;\n"; - OS << SS.str(); + OS << FunctionContent; OS << " }\n"; } } @@ -4968,7 +4968,7 @@ void EmitClangAttrNodeTraverse(RecordKeeper &Records, raw_ostream &OS) { if (!Args.empty()) OS << " const auto *SA = cast<" << R.getName() << "Attr>(A); (void)SA;\n"; - OS << SS.str(); + OS << FunctionContent; OS << " }\n"; } } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits