https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65178
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- I think the issue is that uninit doesn't even try to see whether the loop PHI node has its backedge always executed and that results in an always initialized PHI result. It's also not that easy as it doesn't perform any dataflow. With PR63278 fixed we'd fully unroll the inner loop / SCCP it and then jump-threading would "solve" this issue. But in reality we need uninit re-written in a completely different way ... #pragma GCC diagnostic ignored "-Wuninitialized" is your friend.