https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109109
--- Comment #14 from Martin Liška <marxin at gcc dot gnu.org> --- Btw. the problematic instruction that assembly the page_id_t: # /tmp/trxundo.ii:181919: if (__builtin_expect(!undo_block, (0))) { addl $48, %esp #, # /tmp/trxundo.ii:181915: buf_block_t* undo_block = buf_page_get_gen(page_id_t(rseg->space->id, movl %eax, -56(%ebp) # _39, %sfp # /tmp/trxundo.ii:181919: if (__builtin_expect(!undo_block, (0))) { testl %eax, %eax # _39 je .L636 #, # /tmp/trxundo.ii:181923: saved = page_id_t(rseg->space->id, hdr_page_no); movl (%esi), %eax # rseg_35(D)->space, rseg_35(D)->space # /tmp/trxundo.ii:181923: saved = page_id_t(rseg->space->id, hdr_page_no); movl -44(%ebp), %ebx # %sfp, tmp82 # /tmp/trxundo.ii:58816: m_id(uint64_t{space} << 32 | page_no) {} movl 44(%eax), %edx # _9->id, _69 # /tmp/trxundo.ii:181923: saved = page_id_t(rseg->space->id, hdr_page_no); movl saved@GOT(%ebx), %ecx #, tmp164 movl %edx, (%ecx) # _69, saved.m_id movl %edx, 4(%ecx) # _69, saved.m_id # /tmp/trxundo.ii:181924: if (saved.raw() == 0) movl %edx, %ecx # _69, tmp213 orl %edx, %ecx # tmp214, tmp215 je .L662 #, for my adjusted code: saved = page_id_t(rseg->space->id, hdr_page_no); if (saved.raw() == 0) __builtin_abort ();