https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84468
--- Comment #4 from Martin Sebor <msebor at gcc dot gnu.org> --- Yes, the conditional assignment is eliminated in favor of the one in the next basic block. Considering the first statement in the next basic block (rather than just the current one) is also the solution I'm looking into.