aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/function.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1c51e75..45889f2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jan 20 18:15:08 1999 Dave Brolley <brolley@cygnus.com>
+
+ * function.c (assign_parms): Save and restore setting of
+ TREE_USED (parm).
+
Wed Jan 20 12:51:42 1999 Mark Mitchell <mark@markmitchell.com>
* arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout.
diff --git a/gcc/function.c b/gcc/function.c
index 8a67457..1cb8c44 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -4378,6 +4378,7 @@ assign_parms (fndecl, second_time)
if (nominal_mode != passed_mode
|| promoted_nominal_mode != promoted_mode)
{
+ int save_tree_used;
/* ENTRY_PARM has been converted to PROMOTED_MODE, its
mode, by the caller. We now have to convert it to
NOMINAL_MODE, if different. However, PARMREG may be in
@@ -4404,8 +4405,11 @@ assign_parms (fndecl, second_time)
push_to_sequence (conversion_insns);
tempreg = convert_to_mode (nominal_mode, tempreg, unsignedp);
+ /* TREE_USED gets set erroneously during expand_assignment. */
+ save_tree_used = TREE_USED (parm);
expand_assignment (parm,
make_tree (nominal_type, tempreg), 0, 0);
+ TREE_USED (parm) = save_tree_used;
conversion_insns = get_insns ();
did_conversion = 1;
end_sequence ();