https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117507
--- Comment #3 from David Binderman <dcb314 at hotmail dot com> --- After most of the reduction: typedef int u_int; static void z900_vstoreb(); int z900_edit_x_edit_and_mark_regs; unsigned long z900_edit_x_edit_and_mark_regs_1_0_0; u_int z900_edit_x_edit_and_mark_regs_0_0; void(__attribute__(()) z900_edit_x_edit_and_mark)() { int l; int b1; unsigned long addr1; int sig = 0; int trial_run; int i; int d; int h; unsigned char sbyte; unsigned char fbyte; unsigned char rbyte; for (; trial_run >= 0; trial_run--) for (i = 0, d = 0; 0 < l + 1; i++) { if (d == 0) h = sbyte >> 4; d = 1; if (z900_edit_x_edit_and_mark_regs_0_0) z900_edit_x_edit_and_mark_regs_1_0_0 = addr1; rbyte = (sig == 0 && h == 0) ? fbyte : (0xF0 | h); z900_vstoreb(rbyte, addr1, b1, z900_edit_x_edit_and_mark_regs); sig = 1; } }