https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114998
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- Breakpoint 5, release_ssa_name_fn (fn=0x7ffff6be4000, var=<ssa_name 0x7ffff6bebea0 52>) at ../../src/gcc-14-branch/gcc/tree-ssanames.cc:619 619 vec_safe_push (FREE_SSANAMES_QUEUE (fn), var); (gdb) p v.m_vecpfx $7 = {m_alloc = 127, m_using_auto_storage = 0, m_num = 4294967295} The issue is that loop distribution removes stmts from the last partition (with the original stmts in the IL), and during cleanup in free_rdg sets stmt UIDs to -1 again, but also to stmts that were released. The simplest fix I think is to not re-set UIDs in free_rdg.