[clang-tools-extra] [clang-tidy] Fix crash in misc-static-initialization-cycle (PR #198155)
via cfe-commits
cfe-commits at lists.llvm.org
Sun May 17 01:37:13 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-tidy
Author: Zeyi Xu (zeyi2)
<details>
<summary>Changes</summary>
This commit adds handling for null Decl pointers while collecting variable uses.
Closes #<!-- -->198150
---
Full diff: https://github.com/llvm/llvm-project/pull/198155.diff
2 Files Affected:
- (modified) clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp (+1-1)
- (modified) clang-tools-extra/test/clang-tidy/checkers/misc/static-initialization-cycle.cpp (+8)
``````````diff
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() {
``````````
</details>
https://github.com/llvm/llvm-project/pull/198155
More information about the cfe-commits
mailing list