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

Reply via email to