diff options
author | Kaz Kojima <kkojima@gcc.gnu.org> | 2009-05-31 21:45:18 +0000 |
---|---|---|
committer | Kaz Kojima <kkojima@gcc.gnu.org> | 2009-05-31 21:45:18 +0000 |
commit | 47ea8d4efa88226be530ca940c714cd40915abec (patch) | |
tree | accbfa57b11cf3d3ccf4be8fc4a343e745ef8264 /gcc | |
parent | 97fc23aeaf0d5466cae32f25497ced91a4e13f1a (diff) | |
download | gcc-47ea8d4efa88226be530ca940c714cd40915abec.zip gcc-47ea8d4efa88226be530ca940c714cd40915abec.tar.gz gcc-47ea8d4efa88226be530ca940c714cd40915abec.tar.bz2 |
re PR target/40313 (SH: ICE in dwarf2out_begin_epilogue, at dwarf2out.c:2689)
PR target/40313
* config/sh/sh.c: Include debug.h.
(sh_expand_epilogue): Emit a blockage insn before the frame
pointer adjustment also when dwarf2out_do_frame returns true.
From-SVN: r148017
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/sh/sh.c | 6 |
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 40dca07..9305d0c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org> + + PR target/40313 + * config/sh/sh.c: Include debug.h. + (sh_expand_epilogue): Emit a blockage insn before the frame + pointer adjustment also when dwarf2out_do_frame returns true. + 2009-05-31 Richard Earnshaw <rearnsha@arm.com> * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern. diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 9c9583f..681488d 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -43,6 +43,7 @@ along with GCC; see the file COPYING3. If not see #include "target.h" #include "target-def.h" #include "real.h" +#include "debug.h" #include "langhooks.h" #include "basic-block.h" #include "df.h" @@ -6747,8 +6748,9 @@ 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) + when exception handling or frame information is needed. + See PR/18032 and PR/40313. */ + if (flag_exceptions || dwarf2out_do_frame ()) emit_insn (gen_blockage ()); output_stack_adjust (frame_size, hard_frame_pointer_rtx, e, &live_regs_mask); |