[clang-tools-extra] [clang-tidy] Improve `bugprone-infinite-loop` check by adding handing for structured bindings (PR #144213)

Baranov Victor via cfe-commits cfe-commits at lists.llvm.org
Sat Jun 14 03:15:12 PDT 2025


================
@@ -83,6 +83,23 @@ static bool isVarThatIsPossiblyChanged(const Decl *Func, const Stmt *LoopStmt,
              isChanged(LoopStmt, Var, Context);
       // FIXME: Track references.
     }
+
+    if (const auto *BD = dyn_cast<BindingDecl>(DRE->getDecl())) {
+      if (const auto *DD =
+              dyn_cast_if_present<DecompositionDecl>(BD->getDecomposedDecl())) {
----------------
vbvictor wrote:

What is the profit of using `dyn_cast_if_present` here?
`DecompositionDecl` may or may not be there, but the same rules apply to previous cast: `BindingDecl` also may or not be there. 

https://github.com/llvm/llvm-project/pull/144213


More information about the cfe-commits mailing list