https://github.com/zeyi2 updated 
https://github.com/llvm/llvm-project/pull/198155

>From f6473be04535d70a60df38f0b68cdbbca2c7f2a2 Mon Sep 17 00:00:00 2001
From: Zeyi Xu <[email protected]>
Date: Sun, 17 May 2026 16:11:58 +0800
Subject: [PATCH 1/2] [clang-tidy] Fix crash in
 misc-static-initialization-cycle

---
 .../clang-tidy/misc/StaticInitializationCycleCheck.cpp    | 2 +-
 .../checkers/misc/static-initialization-cycle.cpp         | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git 
a/clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp
index eb230983c8a7a..3d1fc88e7233a 100644
--- a/clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp
@@ -193,7 +193,7 @@ class VarUseCollector : public DynamicRecursiveASTVisitor {
   }
   bool TraverseAttr(Attr *At) override { return true; }
   bool TraverseDecl(Decl *D) override {
-    if (DC && DC->containsDecl(D))
+    if (D && DC && DC->containsDecl(D))
       return DynamicRecursiveASTVisitor::TraverseDecl(D);
     return true;
   }
diff --git 
a/clang-tools-extra/test/clang-tidy/checkers/misc/static-initialization-cycle.cpp
 
b/clang-tools-extra/test/clang-tidy/checkers/misc/static-initialization-cycle.cpp
index 2e5af81b6af8c..603edd419880a 100644
--- 
a/clang-tools-extra/test/clang-tidy/checkers/misc/static-initialization-cycle.cpp
+++ 
b/clang-tools-extra/test/clang-tidy/checkers/misc/static-initialization-cycle.cpp
@@ -120,6 +120,14 @@ int f1() {
 int S::A = f1();
 }
 
+namespace catch_all_handler {
+void f() {
+  try {
+  } catch (...) {
+  }
+}
+}
+
 namespace recursive_calls {
 int f2();
 int f1() {

>From 8707994cebbd52b9408fe5f20e3c07eaf396e1b3 Mon Sep 17 00:00:00 2001
From: Zeyi Xu <[email protected]>
Date: Sun, 17 May 2026 16:37:37 +0800
Subject: [PATCH 2/2] Apply suggestions from code review

Co-authored-by: Zeyi Xu <[email protected]>
---
 .../clang-tidy/checkers/misc/static-initialization-cycle.cpp    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/clang-tools-extra/test/clang-tidy/checkers/misc/static-initialization-cycle.cpp
 
b/clang-tools-extra/test/clang-tidy/checkers/misc/static-initialization-cycle.cpp
index 603edd419880a..c17a87758e243 100644
--- 
a/clang-tools-extra/test/clang-tidy/checkers/misc/static-initialization-cycle.cpp
+++ 
b/clang-tools-extra/test/clang-tidy/checkers/misc/static-initialization-cycle.cpp
@@ -126,7 +126,7 @@ void f() {
   } catch (...) {
   }
 }
-}
+} // catch_all_handler
 
 namespace recursive_calls {
 int f2();

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to