On 2025-03-01 21:10, Po Lu wrote: > It doesn't take control flow into account, but rather _every statement > operand_ in the current procedure that addresses an aggregate declared > in the same procedure. Although, as you mentioned, we could work around this wrong-code GCC bug by using -fno-tree-sra (something we already do for GCC pre-SSE2 x86), we should avoid the tricky union locals that trigger the bug on x86-64 with gcc -flto. After all, these union locals make the code harder for humans to read, so removing them is a win regardless of the GCC bug. And if removing the union locals happens to work around the GCC bug then so much the better. Proposed patch attached.