[mlir][SCF] Fix use-after-free in coalesceLoops when inner loop yields its induction var (#217510)
coalesceLoops rewrites yielded values that reference the inner loop's
iter_args (about to be inlined and destroyed) to their replacement
values, but never checked whether a yielded value was the inner
loop's induction variable itself — also a block argument about to be
destroyed. When the inner loop's `scf.yield` yields its own
induction variable, this left a dangling `Value` reference that
crashed `RewriterBase::replaceOp` with a use-after-free.
Fix by also rewriting a yielded induction variable to its delinearized
replacement value, mirroring the existing iter_arg case.
Verified: reverting this fix reproduces the reported segfault; with
the fix, `mlir-opt --affine-loop-coalescing` on the reported
reproducer succeeds, and `mlir/test/Dialect/Affine/loop-coalescing.mlir`
passes.
Fixes #216903
🤖 Generated with [Claude Code](https://claude.com/claude-code)
devel/codebase-memory-mcp: update to 0.10.8, add FreeBSD sysctl indexing
Add a downstream-only feature that teaches the code indexer to resolve
FreeBSD kernel sysctl trees.
Services: Kea DHCPv4/v6: Remove count badge from GroupBy with static configuration elements, since its unlikely to change and its distracting
(cherry picked from commit 6f6d6fa05ec274a4b3589d33e6e4249a162993c2)
Services: Dnsmasq DNS & DHCP: Remove count badge from GroupBy with static configuration elements, since its unlikely to change and its distracting
(cherry picked from commit ff86d1568a67b7fd05aac1567edcd4decedf7be0)
reporting: adjust capitalization on health settings buttons #10724
The old delete functionality in the reporting settings was a bit more
prominent but it's nice to see it's still here. Not sure about the
"show collected reports" since it doesn't imply you can delete the
inidividual reports from there.
(cherry picked from commit 724e778b962a228a8bacd89b2e009f64c1831e54)
[clang-tidy] Fix invalid suggestion in `performance-inefficient-algorithm` (#217458)
`hasArgument` matches the argument after `IgnoreParenImpCasts()`, so for
`#define VALUE (1)` the check bound the `1` inside the parentheses. That
range covers only part of the macro expansion, so `Lexer::getSourceText`
returned an empty string and the suggested fix came out as `s.find()`.
Read the source text from the argument as written instead, and emit no
fix when there is still no text for it.
Fixes https://github.com/llvm/llvm-project/issues/217457