https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118320
--- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Some debug info: (gdb) up #1 0x00000000023bcdb0 in rtl_ssa::restrict_movement_for_uses<rtl_ssa::ignore_changing_insns> (move_range=..., uses=..., ignore=...) at ../../gcc/rtl-ssa/movement.h:285 285 for (const use_info *use : uses) (gdb) l 280 template<typename IgnorePredicates> 281 bool 282 restrict_movement_for_uses (insn_range_info &move_range, use_array uses, 283 IgnorePredicates ignore) 284 { 285 for (const use_info *use : uses) 286 { 287 // Ignore uses of undefined values. 288 set_info *set = use->def (); 289 if (!set) (gdb) p uses $1 = {<array_slice<rtl_ssa::access_info* const>> = {m_base = 0x0, m_size = 4294967295}, <No data fields>} (gdb) p uses.m_size $2 = 4294967295 (gdb) p/x uses.m_size $3 = 0xffffffff What I don't understand is why is m_size is -1 when m_base is nullptr. Shouldn't it be 0? or I am missing something obvious?