diff options
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/function.c b/gcc/function.c index eddffdb..3ae4b38 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -3813,7 +3813,7 @@ locate_and_pad_parm (enum machine_mode passed_mode, tree type, int in_regs, { tree s2 = sizetree; if (where_pad != none - && (!host_integerp (sizetree, 1) + && (!tree_fits_uhwi_p (sizetree) || (tree_low_cst (sizetree, 1) * BITS_PER_UNIT) % round_boundary)) s2 = round_up (s2, round_boundary / BITS_PER_UNIT); SUB_PARM_SIZE (locate->slot_offset, s2); @@ -3858,7 +3858,7 @@ locate_and_pad_parm (enum machine_mode passed_mode, tree type, int in_regs, pad_below (&locate->offset, passed_mode, sizetree); if (where_pad != none - && (!host_integerp (sizetree, 1) + && (!tree_fits_uhwi_p (sizetree) || (tree_low_cst (sizetree, 1) * BITS_PER_UNIT) % round_boundary)) sizetree = round_up (sizetree, round_boundary / BITS_PER_UNIT); |