aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2005-09-01 16:35:19 -0700
committerRichard Henderson <rth@gcc.gnu.org>2005-09-01 16:35:19 -0700
commite3947b349cbbe750897b8c81d2e0dfeada17bf84 (patch)
tree287a02368141acc854ed200b5c234a99116f4e9c /gcc
parent056061d8da51885e41182e2cd2d44b2435c25a00 (diff)
downloadgcc-e3947b349cbbe750897b8c81d2e0dfeada17bf84.zip
gcc-e3947b349cbbe750897b8c81d2e0dfeada17bf84.tar.gz
gcc-e3947b349cbbe750897b8c81d2e0dfeada17bf84.tar.bz2
re PR middle-end/23676 (ICE: "missing REG_EH_REGION note in the end of bb")
PR 23676 * reload1.c (reload_as_needed): Check !CALL_P before calling fixup_eh_region_note. * rtlanal.c (may_trap_p): SUBREG by itself cannot trap. From-SVN: r103751
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/reload1.c2
-rw-r--r--gcc/rtlanal.c1
3 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9d20f4b..952d7e1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2005-09-01 Richard Henderson <rth@redhat.com>
+
+ PR 23676
+ * reload1.c (reload_as_needed): Check !CALL_P before calling
+ fixup_eh_region_note.
+ * rtlanal.c (may_trap_p): SUBREG by itself cannot trap.
+
2005-09-01 DJ Delorie <dj@redhat.com>
* varasm.c (output_constant): Let the target resolve
diff --git a/gcc/reload1.c b/gcc/reload1.c
index eb2ce0f..236afce 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -3926,7 +3926,7 @@ reload_as_needed (int live_known)
subst_reloads (insn);
/* Adjust the exception region notes for loads and stores. */
- if (flag_non_call_exceptions)
+ if (flag_non_call_exceptions && !CALL_P (insn))
fixup_eh_region_note (insn, prev, next);
/* If this was an ASM, make sure that all the reload insns
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index 6a3be0e..92068a1 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -2166,6 +2166,7 @@ may_trap_p (rtx x)
case NEG:
case ABS:
+ case SUBREG:
/* These operations don't trap even with floating point. */
break;