Author: JOE1994 Date: 2024-09-14T05:29:40-04:00 New Revision: 223e2efa5e886502a9467b7ef700ebce9b7886e8
URL: https://github.com/llvm/llvm-project/commit/223e2efa5e886502a9467b7ef700ebce9b7886e8 DIFF: https://github.com/llvm/llvm-project/commit/223e2efa5e886502a9467b7ef700ebce9b7886e8.diff LOG: [clang] Nits on uses of raw_string_ostream (NFC) * Don't call raw_string_ostream::flush(), which is essentially a no-op. * Strip unneeded calls to raw_string_ostream::str(), to avoid extra indirection. Added: Modified: clang/lib/AST/APValue.cpp clang/lib/AST/DeclPrinter.cpp clang/lib/AST/Expr.cpp clang/lib/AST/Mangle.cpp clang/lib/AST/MicrosoftMangle.cpp clang/lib/AST/StmtViz.cpp clang/lib/ASTMatchers/Dynamic/Registry.cpp clang/lib/Analysis/CFG.cpp Removed: ################################################################################ diff --git a/clang/lib/AST/APValue.cpp b/clang/lib/AST/APValue.cpp index d8e33ff421c06c..4f5d14cbd59bbf 100644 --- a/clang/lib/AST/APValue.cpp +++ b/clang/lib/AST/APValue.cpp @@ -947,7 +947,6 @@ std::string APValue::getAsString(const ASTContext &Ctx, QualType Ty) const { std::string Result; llvm::raw_string_ostream Out(Result); printPretty(Out, Ctx, Ty); - Out.flush(); return Result; } diff --git a/clang/lib/AST/DeclPrinter.cpp b/clang/lib/AST/DeclPrinter.cpp index 07be813abd8adc..0d51fdbc7e1262 100644 --- a/clang/lib/AST/DeclPrinter.cpp +++ b/clang/lib/AST/DeclPrinter.cpp @@ -629,7 +629,6 @@ static void printExplicitSpecifier(ExplicitSpecifier ES, llvm::raw_ostream &Out, EOut << ")"; } EOut << " "; - EOut.flush(); Out << Proto; } @@ -790,7 +789,6 @@ void DeclPrinter::VisitFunctionDecl(FunctionDecl *D) { llvm::raw_string_ostream EOut(Proto); FT->getNoexceptExpr()->printPretty(EOut, nullptr, SubPolicy, Indentation, "\n", &Context); - EOut.flush(); Proto += ")"; } } diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index e10142eff8ec47..2e463fc00c6b68 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -612,7 +612,7 @@ std::string SYCLUniqueStableNameExpr::ComputeName(ASTContext &Context, llvm::raw_string_ostream Out(Buffer); Ctx->mangleCanonicalTypeName(Ty, Out); - return Out.str(); + return Buffer; } PredefinedExpr::PredefinedExpr(SourceLocation L, QualType FNTy, @@ -798,7 +798,6 @@ std::string PredefinedExpr::ComputeName(PredefinedIdentKind IK, FD->printQualifiedName(POut, Policy); if (IK == PredefinedIdentKind::Function) { - POut.flush(); Out << Proto; return std::string(Name); } @@ -880,15 +879,12 @@ std::string PredefinedExpr::ComputeName(PredefinedIdentKind IK, } } - TOut.flush(); if (!TemplateParams.empty()) { // remove the trailing comma and space TemplateParams.resize(TemplateParams.size() - 2); POut << " [" << TemplateParams << "]"; } - POut.flush(); - // Print "auto" for all deduced return types. This includes C++1y return // type deduction and lambdas. For trailing return types resolve the // decltype expression. Otherwise print the real type when this is diff --git a/clang/lib/AST/Mangle.cpp b/clang/lib/AST/Mangle.cpp index 75f6e2161a6338..4875e8537b3c11 100644 --- a/clang/lib/AST/Mangle.cpp +++ b/clang/lib/AST/Mangle.cpp @@ -574,9 +574,9 @@ class ASTNameGenerator::Implementation { std::string BackendBuf; llvm::raw_string_ostream BOS(BackendBuf); - llvm::Mangler::getNameWithPrefix(BOS, FOS.str(), DL); + llvm::Mangler::getNameWithPrefix(BOS, FrontendBuf, DL); - return BOS.str(); + return BackendBuf; } std::string getMangledThunk(const CXXMethodDecl *MD, const ThunkInfo &T, @@ -589,9 +589,9 @@ class ASTNameGenerator::Implementation { std::string BackendBuf; llvm::raw_string_ostream BOS(BackendBuf); - llvm::Mangler::getNameWithPrefix(BOS, FOS.str(), DL); + llvm::Mangler::getNameWithPrefix(BOS, FrontendBuf, DL); - return BOS.str(); + return BackendBuf; } }; diff --git a/clang/lib/AST/MicrosoftMangle.cpp b/clang/lib/AST/MicrosoftMangle.cpp index 018ab617a0ecee..7b069c66aed598 100644 --- a/clang/lib/AST/MicrosoftMangle.cpp +++ b/clang/lib/AST/MicrosoftMangle.cpp @@ -1396,7 +1396,7 @@ void MicrosoftCXXNameMangler::mangleNestedName(GlobalDecl GD) { Stream << '_' << Discriminator; if (ParameterDiscriminator) Stream << '_' << ParameterDiscriminator; - return Stream.str(); + return Buffer; }; unsigned Discriminator = BD->getBlockManglingNumber(); diff --git a/clang/lib/AST/StmtViz.cpp b/clang/lib/AST/StmtViz.cpp index 4eb0da8a0e105f..c86363031eb53d 100644 --- a/clang/lib/AST/StmtViz.cpp +++ b/clang/lib/AST/StmtViz.cpp @@ -34,15 +34,14 @@ struct DOTGraphTraits<const Stmt*> : public DefaultDOTGraphTraits { static std::string getNodeLabel(const Stmt* Node, const Stmt* Graph) { #ifndef NDEBUG - std::string OutSStr; - llvm::raw_string_ostream Out(OutSStr); + std::string OutStr; + llvm::raw_string_ostream Out(OutStr); if (Node) Out << Node->getStmtClassName(); else Out << "<NULL>"; - std::string OutStr = Out.str(); if (OutStr[0] == '\n') OutStr.erase(OutStr.begin()); // Process string output to make it nicer... diff --git a/clang/lib/ASTMatchers/Dynamic/Registry.cpp b/clang/lib/ASTMatchers/Dynamic/Registry.cpp index 2c75e6beb74301..8d36ad5c80b5d4 100644 --- a/clang/lib/ASTMatchers/Dynamic/Registry.cpp +++ b/clang/lib/ASTMatchers/Dynamic/Registry.cpp @@ -791,7 +791,7 @@ Registry::getMatcherCompletions(ArrayRef<ArgKind> AcceptedTypes) { TypedText += "\""; } - Completions.emplace_back(TypedText, OS.str(), MaxSpecificity); + Completions.emplace_back(TypedText, Decl, MaxSpecificity); } } diff --git a/clang/lib/Analysis/CFG.cpp b/clang/lib/Analysis/CFG.cpp index 64e6155de090c5..f678ac6f2ff36a 100644 --- a/clang/lib/Analysis/CFG.cpp +++ b/clang/lib/Analysis/CFG.cpp @@ -6164,7 +6164,7 @@ void CFGBlock::printTerminatorJson(raw_ostream &Out, const LangOptions &LO, printTerminator(TempOut, LO); - Out << JsonFormat(TempOut.str(), AddQuotes); + Out << JsonFormat(Buf, AddQuotes); } // Returns true if by simply looking at the block, we can be sure that it @@ -6345,10 +6345,9 @@ struct DOTGraphTraits<const CFG*> : public DefaultDOTGraphTraits { DOTGraphTraits(bool isSimple = false) : DefaultDOTGraphTraits(isSimple) {} static std::string getNodeLabel(const CFGBlock *Node, const CFG *Graph) { - std::string OutSStr; - llvm::raw_string_ostream Out(OutSStr); + std::string OutStr; + llvm::raw_string_ostream Out(OutStr); print_block(Out,Graph, *Node, *GraphHelper, false, false); - std::string& OutStr = Out.str(); if (OutStr[0] == '\n') OutStr.erase(OutStr.begin()); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits