https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104028
--- Comment #11 from Martin Liška <marxin at gcc dot gnu.org> --- Reduced test-case: $ cat pr104028.c # 1 "" 3 struct { _Bool do_force; int examine; int vpd_pn } svpd_decode_t10_op; svpd_decode_t10_sg_fd, svpd_decode_t10_op_1, svpd_decode_t10_op_2; svpd_decode_t10_rp() { _Bool inhex_active = svpd_decode_t10_sg_fd; int pn = svpd_decode_t10_op_2; if (inhex_active) pn = svpd_decode_t10_rp; if (!inhex_active && svpd_decode_t10_op_1) vpd_fetch_page(); switch (pn) { case 2: if (inhex_active) sg_ll_inquiry_v2(); case 181: vpd_fetch_page(); case 182: vpd_fetch_page(); case 183: vpd_fetch_page(); case 184: vpd_fetch_page(svpd_decode_t10_op); case 185: vpd_fetch_page(); } } $ m68k-suse-linux-gcc pr104028.c -c -mcpu=5208 -Os /tmp/cciKSGSl.s: Assembler messages: /tmp/cciKSGSl.s:77: Error: value -134 out of range /tmp/cciKSGSl.s:77: Error: value of ffffff7a too large for field of 1 byte at 000000cf $ m68k-suse-linux-gcc pr104028.c --version m68k-suse-linux-gcc (SUSE Linux) 11.2.1 20220103 [revision d4a1d3c4b377f1d4acb34fe1b55b5088a3f293f6] we speak about the following instruction: 77 move.w .L18(%pc,%d2.l),%d0