------- 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