]> gcc.gnu.org Git - gcc.git/commitdiff
re PR middle-end/23676 (ICE: "missing REG_EH_REGION note in the end of bb")
authorRichard Henderson <rth@redhat.com>
Thu, 1 Sep 2005 23:35:19 +0000 (16:35 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 1 Sep 2005 23:35:19 +0000 (16:35 -0700)
        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

gcc/ChangeLog
gcc/reload1.c
gcc/rtlanal.c

index 9d20f4b542a774449fccd84a7ad2ec18e0e77351..952d7e1b6804cbfc946fa9f921836b37676832b2 100644 (file)
@@ -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
index eb2ce0f3d747a53745e8b5a52ddb747890aa3881..236afcef86a4e125a6398b737779266659ed095c 100644 (file)
@@ -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
index 6a3be0e7918d217b3db516c8ac8b9e83c428079e..92068a1fd31a3353faf228cf31330a58c9d89871 100644 (file)
@@ -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;
 
This page took 0.077111 seconds and 5 git commands to generate.