plus_constant expects integer as its third argument, not rtx. gcc/ChangeLog:
* config/i386/i386.cc (ix86_redzone_clobber): Use integer, not rtx as the third argument of plus_constant. Bootstrapped and regression tested on x86_64-pc-linux-gnu {,-m32}. Uros.
diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc index 18127bcada8..f38e3db41fa 100644 --- a/gcc/config/i386/i386.cc +++ b/gcc/config/i386/i386.cc @@ -26465,8 +26465,7 @@ ix86_redzone_clobber () cfun->machine->asm_redzone_clobber_seen = true; if (ix86_using_red_zone ()) { - rtx base = plus_constant (Pmode, stack_pointer_rtx, - GEN_INT (-RED_ZONE_SIZE)); + rtx base = plus_constant (Pmode, stack_pointer_rtx, -RED_ZONE_SIZE); rtx mem = gen_rtx_MEM (BLKmode, base); set_mem_size (mem, RED_ZONE_SIZE); return mem;