aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@gcc.gnu.org>2009-05-31 21:45:18 +0000
committerKaz Kojima <kkojima@gcc.gnu.org>2009-05-31 21:45:18 +0000
commit47ea8d4efa88226be530ca940c714cd40915abec (patch)
treeaccbfa57b11cf3d3ccf4be8fc4a343e745ef8264 /gcc
parent97fc23aeaf0d5466cae32f25497ced91a4e13f1a (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/config/sh/sh.c6
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);