aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog2
-rw-r--r--gcc/function.c8
2 files changed, 6 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f30b24f..eb029e3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,7 @@
Fri Oct 20 13:33:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+ * function.c (locate_and_pad_parm): Use host_integerp and tree_low_cst.
+
* fold-const.c (force_fit_type): Unsigned values can overflow
if they are sizetype.
(int_const_binop): Don't use cache if overflows.
diff --git a/gcc/function.c b/gcc/function.c
index 40c5f57..c7ff587 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -5133,8 +5133,8 @@ locate_and_pad_parm (passed_mode, type, in_regs, fndecl,
offset_ptr->var = 0;
}
if (where_pad != none
- && (TREE_CODE (sizetree) != INTEGER_CST
- || ((TREE_INT_CST_LOW (sizetree) * BITS_PER_UNIT) % PARM_BOUNDARY)))
+ && (!host_integerp (sizetree, 1)
+ || (tree_low_cst (sizetree, 1) * BITS_PER_UNIT) % PARM_BOUNDARY))
sizetree = round_up (sizetree, PARM_BOUNDARY / BITS_PER_UNIT);
SUB_PARM_SIZE (*offset_ptr, sizetree);
if (where_pad != downward)
@@ -5173,8 +5173,8 @@ locate_and_pad_parm (passed_mode, type, in_regs, fndecl,
pad_below (offset_ptr, passed_mode, sizetree);
if (where_pad != none
- && (TREE_CODE (sizetree) != INTEGER_CST
- || ((TREE_INT_CST_LOW (sizetree) * BITS_PER_UNIT) % PARM_BOUNDARY)))
+ && (!host_integerp (sizetree, 1)
+ || (tree_low_cst (sizetree, 1) * BITS_PER_UNIT) % PARM_BOUNDARY))
sizetree = round_up (sizetree, PARM_BOUNDARY / BITS_PER_UNIT);
ADD_PARM_SIZE (*arg_size_ptr, sizetree);