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
