function.c (assign_parms): Save and restore setting of TREE_USED (parm).
authorDave Brolley <brolley@cygnus.com>
Wed, 20 Jan 1999 15:26:31 +0000 (15:26 +0000)
committerDave Brolley <brolley@gcc.gnu.org>
Wed, 20 Jan 1999 15:26:31 +0000 (10:26 -0500)
Wed Jan 20 18:15:08 1999  Dave Brolley  <brolley@cygnus.com>
* function.c (assign_parms): Save and restore setting of
  TREE_USED (parm).

From-SVN: r24789

gcc/ChangeLog
gcc/function.c

index 1c51e75e761ed15d716fe7e14de0d8f2b9aab192..45889f23e07594045dbd628e4dd2dbdaf0d30eeb 100644 (file)
@@ -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.
index 8a67457495b80175f147ffb6c490c58d640bb57e..1cb8c44bbcd3829d2c47d8cf45eeb56e5268edd7 100644 (file)
@@ -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 ();