https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61047
--- Comment #8 from Bernd Edlinger <bernd.edlinger at hotmail dot de> --- > expmed.c.214r.reload: > > ;; Function long unsigned int choose_multiplier(long unsigned int, int, int, > long unsigned int*, int*, int*) (_Z17choose_multipliermiiPmPiS0_, > funcdef_no=1085, decl_uid=47659, symbol_order=801) > > ... > 557: r13:DI=0x7ffffff78 > REG_EQUIV 0x7ffffff78 > ... > 547: debug this => debug_implicit_ptr > 548: debug D#64 => debug_implicit_ptr > 549: debug D#37 => D#64 > 550: debug this => D#37 > 551: debug len => optimized away > 552: debug D#65 => debug_implicit_ptr > 553: debug D#39 => D#65 > 554: debug this => D#39 > 555: debug high => [sp:DI+0x800000038] > 556: debug res => 0 > 560: NOTE_INSN_DELETED > 1334: NOTE_INSN_DELETED > 1367: ax:DI=[sp:DI+r13:DI+0xc0] > OK. This is actually not reachable. Only if wi::divmod_internal would return 0, which it does not. But in this case get_len() would return 0, and then generic_wide_int <storage>::uhigh () const { return this->get_val ()[this->get_len () - 1]; } would access exactly SP+32GB. So this is actually one more case, where it would be incorrect and potentially dangerous for rtx_addr_can_trap_p_1 to return 0. The crash in -fdump-rtl-all-slim is actually a different bug, PR61461 which has most likely nothing to do with this issue.