integrate.c (expand_inline_function): Move expand_start_bindings after expanding...
authorJason Merrill <jason@yorick.cygnus.com>
Tue, 16 Sep 1997 21:23:59 +0000 (21:23 +0000)
committerJason Merrill <jason@gcc.gnu.org>
Tue, 16 Sep 1997 21:23:59 +0000 (17:23 -0400)
* integrate.c (expand_inline_function): Move expand_start_bindings
after expanding the arguments.

From-SVN: r15499

gcc/ChangeLog
gcc/integrate.c

index 53929a1..326e591 100644 (file)
@@ -1,3 +1,8 @@
+Tue Sep 16 14:22:36 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * integrate.c (expand_inline_function): Move expand_start_bindings
+       after expanding the arguments.
+
 Tue Sep 16 11:13:46 1997  Jim Wilson  <wilson@cygnus.com>
 
        * expr.c (expand_expr): Remove previous incorrect change.
index c85303b..4b99eac 100644 (file)
@@ -1299,10 +1299,6 @@ expand_inline_function (fndecl, parms, target, ignore, type,
      parameter declarations.  */
   pushlevel (0);
 
-  /* Make a fresh binding contour that we can easily remove.  */
-  pushlevel (0);
-  expand_start_bindings (0);
-
   /* Expand the function arguments.  Do this first so that any
      new registers get created before we allocate the maps.  */
 
@@ -1738,6 +1734,11 @@ expand_inline_function (fndecl, parms, target, ignore, type,
   else
     abort ();
 
+  /* Make a fresh binding contour that we can easily remove.  Do this after
+     expanding our arguments so cleanups are properly scoped.  */
+  pushlevel (0);
+  expand_start_bindings (0);
+
   /* Make new label equivalences for the labels in the called function.  */
   for (i = min_labelno; i < max_labelno; i++)
     map->label_map[i] = gen_label_rtx ();