summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2000-11-08 13:13:10 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2000-11-08 13:13:10 +0000
commitf7bc085aa63acf13b75dfcd8ab69d5c48d8e945e (patch)
treece7102a628dc7b14f9ef2e3b749c06271e82da0f
parentddf4ad756fc84af46220f00817708143416ed55a (diff)
downloadgcc-f7bc085aa63acf13b75dfcd8ab69d5c48d8e945e.tar.gz
* function.c (expand_function_start): Cast GET_MODE_SIZE to
HOST_WIDE_INT before negating it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37317 138bc75d-0d04-0410-961f-82ee72b054a4
-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 053253f9674..87c1086641a 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 f86521a2eb6..98184eff13b 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 ();