[clang] ac66469 - [clang] Tidy uses of raw_string_ostream (NFC)
Youngsuk Kim via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 19 12:57:06 PDT 2024
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';
}
More information about the cfe-commits
mailing list