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