[clang-tools-extra] Replace SmallSet with SmallPtrSet (NFC) (#154365)
This patch replaces SmallSet<T *, N> with SmallPtrSet<T *, N>. Note that SmallSet.h "redirects" SmallSet to SmallPtrSet for pointer element types: template <typename PointeeType, unsigned N> class SmallSet<PointeeType*, N> : public SmallPtrSet<PointeeType*, N> {}; We only have 10 instances that rely on this "redirection", with more than half of them under clang-tools-extra/. Since the redirection doesn't improve readability, this patch replaces SmallSet with SmallPtrSet for pointer element types. I'm planning to remove the redirection eventually.
This commit is contained in:
parent
4c9b7ff04c
commit
ccd5ddab9b
@ -188,7 +188,7 @@ static bool isKnownToHaveValue(const Expr &Cond, const ASTContext &Ctx,
|
|||||||
/// \return true iff all `CallExprs` visited have callees; false otherwise
|
/// \return true iff all `CallExprs` visited have callees; false otherwise
|
||||||
/// indicating there is an unresolved indirect call.
|
/// indicating there is an unresolved indirect call.
|
||||||
static bool populateCallees(const Stmt *StmtNode,
|
static bool populateCallees(const Stmt *StmtNode,
|
||||||
llvm::SmallSet<const Decl *, 16> &Callees) {
|
llvm::SmallPtrSet<const Decl *, 16> &Callees) {
|
||||||
if (const auto *Call = dyn_cast<CallExpr>(StmtNode)) {
|
if (const auto *Call = dyn_cast<CallExpr>(StmtNode)) {
|
||||||
const Decl *Callee = Call->getDirectCallee();
|
const Decl *Callee = Call->getDirectCallee();
|
||||||
|
|
||||||
@ -212,7 +212,7 @@ static bool populateCallees(const Stmt *StmtNode,
|
|||||||
/// returns true iff `SCC` contains `Func` and its' function set overlaps with
|
/// returns true iff `SCC` contains `Func` and its' function set overlaps with
|
||||||
/// `Callees`
|
/// `Callees`
|
||||||
static bool overlap(ArrayRef<CallGraphNode *> SCC,
|
static bool overlap(ArrayRef<CallGraphNode *> SCC,
|
||||||
const llvm::SmallSet<const Decl *, 16> &Callees,
|
const llvm::SmallPtrSet<const Decl *, 16> &Callees,
|
||||||
const Decl *Func) {
|
const Decl *Func) {
|
||||||
bool ContainsFunc = false, Overlap = false;
|
bool ContainsFunc = false, Overlap = false;
|
||||||
|
|
||||||
@ -264,7 +264,7 @@ static bool hasRecursionOverStaticLoopCondVariables(const Expr *Cond,
|
|||||||
if (!hasStaticLocalVariable(Cond))
|
if (!hasStaticLocalVariable(Cond))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
llvm::SmallSet<const Decl *, 16> CalleesInLoop;
|
llvm::SmallPtrSet<const Decl *, 16> CalleesInLoop;
|
||||||
|
|
||||||
if (!populateCallees(LoopStmt, CalleesInLoop)) {
|
if (!populateCallees(LoopStmt, CalleesInLoop)) {
|
||||||
// If there are unresolved indirect calls, we assume there could
|
// If there are unresolved indirect calls, we assume there could
|
||||||
|
@ -985,7 +985,7 @@ resolveForwardingParameters(const FunctionDecl *D, unsigned MaxDepth) {
|
|||||||
// Recurse on pack parameters
|
// Recurse on pack parameters
|
||||||
size_t Depth = 0;
|
size_t Depth = 0;
|
||||||
const FunctionDecl *CurrentFunction = D;
|
const FunctionDecl *CurrentFunction = D;
|
||||||
llvm::SmallSet<const FunctionTemplateDecl *, 4> SeenTemplates;
|
llvm::SmallPtrSet<const FunctionTemplateDecl *, 4> SeenTemplates;
|
||||||
if (const auto *Template = D->getPrimaryTemplate()) {
|
if (const auto *Template = D->getPrimaryTemplate()) {
|
||||||
SeenTemplates.insert(Template);
|
SeenTemplates.insert(Template);
|
||||||
}
|
}
|
||||||
|
@ -1876,7 +1876,7 @@ static void fillSubTypes(const SymbolID &ID,
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
using RecursionProtectionSet = llvm::SmallSet<const CXXRecordDecl *, 4>;
|
using RecursionProtectionSet = llvm::SmallPtrSet<const CXXRecordDecl *, 4>;
|
||||||
|
|
||||||
// Extracts parents from AST and populates the type hierarchy item.
|
// Extracts parents from AST and populates the type hierarchy item.
|
||||||
static void fillSuperTypes(const CXXRecordDecl &CXXRD, llvm::StringRef TUPath,
|
static void fillSuperTypes(const CXXRecordDecl &CXXRD, llvm::StringRef TUPath,
|
||||||
|
@ -181,7 +181,7 @@ struct ExtractionZone {
|
|||||||
bool requiresHoisting(const SourceManager &SM,
|
bool requiresHoisting(const SourceManager &SM,
|
||||||
const HeuristicResolver *Resolver) const {
|
const HeuristicResolver *Resolver) const {
|
||||||
// First find all the declarations that happened inside extraction zone.
|
// First find all the declarations that happened inside extraction zone.
|
||||||
llvm::SmallSet<const Decl *, 1> DeclsInExtZone;
|
llvm::SmallPtrSet<const Decl *, 1> DeclsInExtZone;
|
||||||
for (auto *RootStmt : RootStmts) {
|
for (auto *RootStmt : RootStmts) {
|
||||||
findExplicitReferences(
|
findExplicitReferences(
|
||||||
RootStmt,
|
RootStmt,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user