function.c (assign_parms): When calling put_var_into_stack...
authorMark Mitchell <mark@codesourcery.com>
Mon, 13 Nov 2000 07:00:55 +0000 (07:00 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Mon, 13 Nov 2000 07:00:55 +0000 (07:00 +0000)
* function.c (assign_parms): When calling put_var_into_stack, make
sure that there are no hidden pending sequences.

From-SVN: r37417

gcc/ChangeLog
gcc/function.c

index e27245a..9ecbca7 100644 (file)
@@ -1,3 +1,8 @@
+2000-11-12  Mark Mitchell  <mark@codesourcery.com>
+
+       * function.c (assign_parms): When calling put_var_into_stack, make
+       sure that there are no hidden pending sequences.
+
 2000-11-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * builtins.c (expand_builtin): Handle BUILT_IN_INDEX and
index ece43d3..bf71b5a 100644 (file)
@@ -4863,7 +4863,19 @@ assign_parms (fndecl)
 
          /* If something wants our address, try to use ADDRESSOF.  */
          if (TREE_ADDRESSABLE (parm))
-           put_var_into_stack (parm);
+           {
+             /* If we end up putting something into the stack,
+                fixup_var_refs_insns will need to make a pass over
+                all the instructions.  It looks throughs the pending
+                sequences -- but it can't see the ones in the
+                CONVERSION_INSNS, if they're not on the sequence
+                stack.  So, we go back to that sequence, just so that
+                the fixups will happen.  */
+             push_to_sequence (conversion_insns);
+             put_var_into_stack (parm);
+             conversion_insns = get_insns ();
+             end_sequence ();
+           }
        }
       else
        {