[clang] 223e2ef - [clang] Nits on uses of raw_string_ostream (NFC)
via cfe-commits
cfe-commits at lists.llvm.org
Sat Sep 14 02:40:49 PDT 2024
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());
More information about the cfe-commits
mailing list