================
@@ -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())) 
{
----------------
flovent wrote:

But does `BindingDecl::getDecomposedDecl` always return non null value? I find 
the use of this API in clang, `ValueDecl::getPotentiallyDecomposedVarDecl` does 
check it nullability,
```
VarDecl *ValueDecl::getPotentiallyDecomposedVarDecl() {
  // ...
  if (auto *BD = llvm::dyn_cast<BindingDecl>(this))
    return llvm::dyn_cast_if_present<VarDecl>(BD->getDecomposedDecl());
  return nullptr;
}
```

https://github.com/llvm/llvm-project/pull/144213
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to