================ @@ -12726,11 +12726,15 @@ bool ASTContext::DeclMustBeEmitted(const Decl *D) { // Likewise, variables with tuple-like bindings are required if their // bindings have side-effects. - if (const auto *DD = dyn_cast<DecompositionDecl>(VD)) - for (const auto *BD : DD->bindings()) - if (const auto *BindingVD = BD->getHoldingVar()) - if (DeclMustBeEmitted(BindingVD)) - return true; + if (const auto *DD = dyn_cast<DecompositionDecl>(VD)) { + bool BindingResult = false; + DD->VisitHoldingVars([&](VarDecl *BindingVD) { ---------------- ricejasonf wrote:
I replaced the Visit functions with `flat_bindings` and reverted the places where I was using them. I will look to see if there is some existing iterator that you are referring to if it would be simple than `flat_binding_iterator` (which had some things I had to fix.) https://github.com/llvm/llvm-project/pull/121417 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits