------- Comment #9 from hjl dot tools at gmail dot com  2010-08-14 22:23 -------
assert is too strong as shown in the testcase.
This patch works for me:

--
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index b925122..863c9bf 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -10030,7 +10030,11 @@ ix86_expand_epilogue (int style)
       rtx t;

       if (frame.nregs)
-  ix86_emit_restore_regs_using_mov (frame.reg_save_offset, style == 2);
+  {
+    ix86_emit_restore_regs_using_mov (frame.reg_save_offset,
+                  style == 2);
+    m->fs.sp_valid = true;
+  }

       /* eh_return epilogues need %ecx added to the stack pointer.  */
       if (style == 2)
--


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45206

Reply via email to