aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/function.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 053253f..87c1086 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2000-11-08 Jakub Jelinek <jakub@redhat.com>
+ * function.c (expand_function_start): Cast GET_MODE_SIZE to
+ HOST_WIDE_INT before negating it.
+
+2000-11-08 Jakub Jelinek <jakub@redhat.com>
+
* expr.c (expand_expr) [ADDR_EXPR]: Handle when op0 is RETURN_DECL
passed in multiple non-contiguous locations.
diff --git a/gcc/function.c b/gcc/function.c
index f86521a..98184ef 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -6315,7 +6315,8 @@ expand_function_start (subr, parms_have_cleanups)
/* Chain thru stack frames, assuming pointer to next lexical frame
is found at the place we always store it. */
#ifdef FRAME_GROWS_DOWNWARD
- last_ptr = plus_constant (last_ptr, -GET_MODE_SIZE (Pmode));
+ last_ptr = plus_constant (last_ptr,
+ -(HOST_WIDE_INT) GET_MODE_SIZE (Pmode));
#endif
last_ptr = gen_rtx_MEM (Pmode, memory_address (Pmode, last_ptr));
MEM_ALIAS_SET (last_ptr) = get_frame_alias_set ();