Author: Youngsuk Kim Date: 2024-09-19T14:56:45-05:00 New Revision: ac664697c54cf2ffa9ebef0215f734bcca3b718f
URL: https://github.com/llvm/llvm-project/commit/ac664697c54cf2ffa9ebef0215f734bcca3b718f DIFF: https://github.com/llvm/llvm-project/commit/ac664697c54cf2ffa9ebef0215f734bcca3b718f.diff LOG: [clang] Tidy uses of raw_string_ostream (NFC) As specified in the docs, 1) raw_string_ostream is always unbuffered and 2) the underlying buffer may be used directly ( 65b13610a5226b84889b923bae884ba395ad084d for further reference ) * Don't call raw_string_ostream::flush(), which is essentially a no-op. * Avoid unneeded calls to raw_string_ostream::str(), to avoid excess indirection. Added: Modified: clang/lib/ExtractAPI/DeclarationFragments.cpp clang/lib/Frontend/ChainedIncludesSource.cpp clang/lib/Frontend/CompilerInstance.cpp clang/lib/Frontend/CompilerInvocation.cpp clang/lib/Frontend/Rewrite/RewriteObjC.cpp clang/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp clang/lib/StaticAnalyzer/Checkers/PointerIterationChecker.cpp clang/lib/StaticAnalyzer/Core/BugReporter.cpp clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp Removed: ################################################################################ diff --git a/clang/lib/ExtractAPI/DeclarationFragments.cpp b/clang/lib/ExtractAPI/DeclarationFragments.cpp index 06ce5ed6a64756..9cb45c8fbf9cbc 100644 --- a/clang/lib/ExtractAPI/DeclarationFragments.cpp +++ b/clang/lib/ExtractAPI/DeclarationFragments.cpp @@ -1110,7 +1110,6 @@ DeclarationFragmentsBuilder::getFragmentsForTemplateArguments( Spelling.clear(); raw_string_ostream OutStream(Spelling); CTA.print(Context.getPrintingPolicy(), OutStream, false); - OutStream.flush(); } } diff --git a/clang/lib/Frontend/ChainedIncludesSource.cpp b/clang/lib/Frontend/ChainedIncludesSource.cpp index c1a9f25a8798c7..a7096e27796a0a 100644 --- a/clang/lib/Frontend/ChainedIncludesSource.cpp +++ b/clang/lib/Frontend/ChainedIncludesSource.cpp @@ -159,7 +159,7 @@ IntrusiveRefCntPtr<ExternalSemaSource> clang::createChainedIncludesSource( std::string pchName = includes[i-1]; llvm::raw_string_ostream os(pchName); os << ".pch" << i-1; - serialBufNames.push_back(os.str()); + serialBufNames.push_back(pchName); IntrusiveRefCntPtr<ASTReader> Reader; Reader = createASTReader( diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp index 5a273474f1d6b6..5f2a9637e3ea46 100644 --- a/clang/lib/Frontend/CompilerInstance.cpp +++ b/clang/lib/Frontend/CompilerInstance.cpp @@ -1383,7 +1383,6 @@ static bool compileModule(CompilerInstance &ImportingInstance, std::string InferredModuleMapContent; llvm::raw_string_ostream OS(InferredModuleMapContent); Module->print(OS); - OS.flush(); Result = compileModuleImpl( ImportingInstance, ImportLoc, Module->getTopLevelModuleName(), diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 32628c5e84332d..de6776b3f9da1a 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -817,7 +817,6 @@ static bool RoundTrip(ParseFn Parse, GenerateFn Generate, llvm::sys::printArg(OS, Arg, /*Quote=*/true); OS << ' '; } - OS.flush(); return Buffer; }; @@ -1186,7 +1185,6 @@ static bool ParseAnalyzerArgs(AnalyzerOptions &Opts, ArgList &Args, os << " "; os << Args.getArgString(i); } - os.flush(); return Diags.getNumErrors() == NumErrorsBefore; } @@ -3735,7 +3733,7 @@ void CompilerInvocationBase::GenerateLangArgs(const LangOptions &Opts, llvm::interleave( Opts.OMPTargetTriples, OS, [&OS](const llvm::Triple &T) { OS << T.str(); }, ","); - GenerateArg(Consumer, OPT_fopenmp_targets_EQ, OS.str()); + GenerateArg(Consumer, OPT_fopenmp_targets_EQ, Targets); } if (!Opts.OMPHostIRFile.empty()) diff --git a/clang/lib/Frontend/Rewrite/RewriteObjC.cpp b/clang/lib/Frontend/Rewrite/RewriteObjC.cpp index fd5e8dc5298950..f3afb3e5e83acd 100644 --- a/clang/lib/Frontend/Rewrite/RewriteObjC.cpp +++ b/clang/lib/Frontend/Rewrite/RewriteObjC.cpp @@ -221,10 +221,9 @@ namespace { return; } // Get the new text. - std::string SStr; - llvm::raw_string_ostream S(SStr); + std::string Str; + llvm::raw_string_ostream S(Str); New->printPretty(S, nullptr, PrintingPolicy(LangOpts)); - const std::string &Str = S.str(); // If replacement succeeded or warning disabled return with no warning. if (!Rewrite.ReplaceText(SrcRange.getBegin(), Size, Str)) { @@ -1702,7 +1701,7 @@ Stmt *RewriteObjC::RewriteObjCSynchronizedStmt(ObjCAtSynchronizedStmt *S) { llvm::raw_string_ostream syncExprBuf(syncExprBufS); assert(syncExpr != nullptr && "Expected non-null Expr"); syncExpr->printPretty(syncExprBuf, nullptr, PrintingPolicy(LangOpts)); - syncBuf += syncExprBuf.str(); + syncBuf += syncExprBufS; syncBuf += ");"; buf += syncBuf; @@ -2508,7 +2507,7 @@ Stmt *RewriteObjC::RewriteObjCStringLiteral(ObjCStringLiteral *Exp) { std::string prettyBufS; llvm::raw_string_ostream prettyBuf(prettyBufS); Exp->getString()->printPretty(prettyBuf, nullptr, PrintingPolicy(LangOpts)); - Preamble += prettyBuf.str(); + Preamble += prettyBufS; Preamble += ","; Preamble += utostr(Exp->getString()->getByteLength()) + "};\n"; diff --git a/clang/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp b/clang/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp index 0a8379d9ab99d3..6bc2ce6686ed64 100644 --- a/clang/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp @@ -68,7 +68,7 @@ static void emitDiagnostics(const BoundNodes &Nodes, Checker, /*Name=*/"OSObject C-Style Cast", categories::SecurityError, - OS.str(), + Diagnostics, PathDiagnosticLocation::createBegin(CE, BR.getSourceManager(), ADC), CE->getSourceRange()); } diff --git a/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp index a6c4186cb15bba..f984caf59afb8d 100644 --- a/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp @@ -164,7 +164,7 @@ void ObjCSuperDeallocChecker::checkLocation(SVal L, bool IsLoad, const Stmt *S, if (IvarRegion) { OS << "Use of instance variable '" << *IvarRegion->getDecl() << "' after 'self' has been deallocated"; - Desc = OS.str(); + Desc = Buf; } reportUseAfterDealloc(BaseSym, Desc, S, C); diff --git a/clang/lib/StaticAnalyzer/Checkers/PointerIterationChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/PointerIterationChecker.cpp index 8aca6d009cdb02..895b2160b76a7b 100644 --- a/clang/lib/StaticAnalyzer/Checkers/PointerIterationChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/PointerIterationChecker.cpp @@ -51,7 +51,7 @@ static void emitDiagnostics(const BoundNodes &Match, const Decl *D, BR.EmitBasicReport(ADC->getDecl(), Checker, "Iteration of pointer-like elements", "Non-determinism", - OS.str(), Location, Range); + Diagnostics, Location, Range); } // Assumption: Iteration of ordered containers of pointers is deterministic. diff --git a/clang/lib/StaticAnalyzer/Core/BugReporter.cpp b/clang/lib/StaticAnalyzer/Core/BugReporter.cpp index ea916c3585cadc..b67e6cd86c3d60 100644 --- a/clang/lib/StaticAnalyzer/Core/BugReporter.cpp +++ b/clang/lib/StaticAnalyzer/Core/BugReporter.cpp @@ -804,8 +804,7 @@ PathDiagnosticPieceRef PathDiagnosticBuilder::generateDiagForSwitchOP( os << "'Default' branch taken. "; End = ExecutionContinues(os, C); } - return std::make_shared<PathDiagnosticControlFlowPiece>(Start, End, - os.str()); + return std::make_shared<PathDiagnosticControlFlowPiece>(Start, End, sbuf); } PathDiagnosticPieceRef PathDiagnosticBuilder::generateDiagForGotoOP( @@ -816,7 +815,7 @@ PathDiagnosticPieceRef PathDiagnosticBuilder::generateDiagForGotoOP( const PathDiagnosticLocation &End = getEnclosingStmtLocation(S, C.getCurrLocationContext()); os << "Control jumps to line " << End.asLocation().getExpansionLineNumber(); - return std::make_shared<PathDiagnosticControlFlowPiece>(Start, End, os.str()); + return std::make_shared<PathDiagnosticControlFlowPiece>(Start, End, sbuf); } PathDiagnosticPieceRef PathDiagnosticBuilder::generateDiagForBinaryOP( @@ -863,8 +862,7 @@ PathDiagnosticPieceRef PathDiagnosticBuilder::generateDiagForBinaryOP( PathDiagnosticLocation::createOperatorLoc(B, SM); } } - return std::make_shared<PathDiagnosticControlFlowPiece>(Start, End, - os.str()); + return std::make_shared<PathDiagnosticControlFlowPiece>(Start, End, sbuf); } void PathDiagnosticBuilder::generateMinimalDiagForBlockEdge( @@ -900,7 +898,7 @@ void PathDiagnosticBuilder::generateMinimalDiagForBlockEdge( llvm::raw_string_ostream os(sbuf); PathDiagnosticLocation End = ExecutionContinues(os, C); C.getActivePath().push_front( - std::make_shared<PathDiagnosticControlFlowPiece>(Start, End, os.str())); + std::make_shared<PathDiagnosticControlFlowPiece>(Start, End, sbuf)); break; } @@ -922,7 +920,7 @@ void PathDiagnosticBuilder::generateMinimalDiagForBlockEdge( End = getEnclosingStmtLocation(S, C.getCurrLocationContext()); C.getActivePath().push_front( - std::make_shared<PathDiagnosticControlFlowPiece>(Start, End, os.str())); + std::make_shared<PathDiagnosticControlFlowPiece>(Start, End, sbuf)); break; } @@ -947,8 +945,7 @@ void PathDiagnosticBuilder::generateMinimalDiagForBlockEdge( End = getEnclosingStmtLocation(S, C.getCurrLocationContext()); C.getActivePath().push_front( - std::make_shared<PathDiagnosticControlFlowPiece>(Start, End, - os.str())); + std::make_shared<PathDiagnosticControlFlowPiece>(Start, End, sbuf)); } else { PathDiagnosticLocation End = ExecutionContinues(C); @@ -973,8 +970,7 @@ void PathDiagnosticBuilder::generateMinimalDiagForBlockEdge( End = getEnclosingStmtLocation(S, C.getCurrLocationContext()); C.getActivePath().push_front( - std::make_shared<PathDiagnosticControlFlowPiece>(Start, End, - os.str())); + std::make_shared<PathDiagnosticControlFlowPiece>(Start, End, sbuf)); } else { PathDiagnosticLocation End = ExecutionContinues(C); if (const Stmt *S = End.asStmt()) diff --git a/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp b/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp index be19a1c118ea5a..d806d970acf8dd 100644 --- a/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp +++ b/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp @@ -812,7 +812,6 @@ void PlistDiagnostics::FlushDiagnosticsImpl( std::string stats; llvm::raw_string_ostream os(stats); llvm::PrintStatisticsJSON(os); - os.flush(); EmitString(o, html::EscapeText(stats)) << '\n'; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits