]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/14327 (-O0 -fdefer-pop generates wrong code)
authorRichard Henderson <rth@redhat.com>
Wed, 3 Mar 2004 00:34:49 +0000 (16:34 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 3 Mar 2004 00:34:49 +0000 (16:34 -0800)
        PR middle-end/14327
        * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
        emitting the label, not after.

From-SVN: r78801

gcc/ChangeLog
gcc/stmt.c

index be13cd700fbf6169d131cab4b3b41179a131aac8..139b25a35b5c516ad046efe59ef3e954eb4aff04 100644 (file)
@@ -1,3 +1,9 @@
+2004-03-02  Richard Henderson  <rth@redhat.com>
+
+        PR middle-end/14327
+        * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
+        emitting the label, not after.
+
 2004-03-02  Danny Smith  <dannysmith@users.sourceforge.net>
 
        * cppinit.c (init_standard_includes): Check that sysroot
index 89b9840c25dd627304a8e4e709828015d15a0e12..6a053006903e1bf4212d3df9ced87a9b25aa38f3 100644 (file)
@@ -546,9 +546,9 @@ expand_computed_goto (exp)
     {
       cfun->computed_goto_common_reg = copy_to_mode_reg (Pmode, x);
       cfun->computed_goto_common_label = gen_label_rtx ();
-      emit_label (cfun->computed_goto_common_label);
   
       do_pending_stack_adjust ();
+      emit_label (cfun->computed_goto_common_label);
       emit_indirect_jump (cfun->computed_goto_common_reg);
 
       current_function_has_computed_jump = 1;