Author: Zeyi Xu Date: 2026-09-18T12:25:20+08:00 New Revision: b2f2c6b539df45710a2fced363370ec508575dca
URL: https://github.com/llvm/llvm-project/commit/b2f2c6b539df45710a2fced363370ec508575dca DIFF: https://github.com/llvm/llvm-project/commit/b2f2c6b539df45710a2fced363370ec508575dca.diff LOG: [clang-tidy] Speed up misc-static-initialization-cycle (#224243) Closes #224219 Added: Modified: clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp b/clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp index 7b1e86b7804fa..aabb7bb71ac4c 100644 --- a/clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp @@ -199,8 +199,8 @@ class VarUseCollector : public DynamicRecursiveASTVisitor { bool VisitDeclRefExpr(DeclRefExpr *DRE) override { if (const auto *VarD = dyn_cast<VarDecl>(DRE->getDecl()); - VarD && (!shouldIgnoreRef(DRE, Node->getDecl()) && - (VarD->hasGlobalStorage() || VarD->isStaticLocal()))) + VarD && VarD->hasGlobalStorage() && + !shouldIgnoreRef(DRE, Node->getDecl())) Node->Uses.emplace_back(DRE, G.addNode(VarD->getCanonicalDecl())); return true; } @@ -240,7 +240,8 @@ class VarUseGraphBuilder : public DynamicRecursiveASTVisitor { } bool VisitFunctionDecl(FunctionDecl *FD) override { - if (FD->isGlobal() || FD->isStatic()) { + if ((FD->isGlobal() || FD->isStatic()) && + FD->doesThisDeclarationHaveABody()) { if (Stmt *Body = FD->getBody()) { VarUseNode *N = G.addNode(FD); VarUseCollector Collector(N, G); _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
