[Bug target/18032] [4.0.0] SH: wrong code for EH

kkojima at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Mon Oct 18 22:43:00 GMT 2004


------- Additional Comments From kkojima at gcc dot gnu dot org  2004-10-18 22:43 -------
I'm testing a patch you suggest with the usual bootstrap and
regression test.  I'll send it to gcc-patches if it passes.

--- ORIG/gcc/gcc/config/sh/sh.c	2004-10-08 07:46:30.000000000 +0900
+++ LOCAL/gcc/gcc/config/sh/sh.c	2004-10-19 07:20:50.000000000 +0900
@@ -5828,6 +5828,10 @@ sh_expand_epilogue (bool sibcall_p)
 
   if (frame_pointer_needed)
     {
+      /* We must avoid scheduling the epilogue with previous basic blocks
+	 when exception handling is enabled.  See PR/18032.  */
+      if (flag_exceptions)
+	emit_insn (gen_blockage ());
       output_stack_adjust (frame_size, frame_pointer_rtx, e, &live_regs_mask);
 
       /* We must avoid moving the stack pointer adjustment past code


-- 


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



More information about the Gcc-bugs mailing list