* except.c (can_throw_internal): Notice RESX instructions.
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 26 May 2004 09:03:23 +0000 (09:03 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 26 May 2004 09:03:23 +0000 (09:03 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@82281 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/except.c

index ee84a89..9ff2cd7 100644 (file)
@@ -1,3 +1,7 @@
+2004-05-26  Jan Hubicka  <jh@suse.cz>
+
+       * except.c (can_throw_internal):  Notice RESX instructions.
+
 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
 
        * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
index 2dfd073..5e9ce33 100644 (file)
@@ -3145,6 +3145,11 @@ can_throw_internal (rtx insn)
       return false;
     }
 
+  if (GET_CODE (insn) == JUMP_INSN
+      && GET_CODE (PATTERN (insn)) == RESX
+      && XINT (PATTERN (insn), 0) > 0)
+    return can_throw_internal_1 (XINT (PATTERN (insn), 0));
+
   /* Every insn that might throw has an EH_REGION note.  */
   note = find_reg_note (insn, REG_EH_REGION, NULL_RTX);
   if (!note || INTVAL (XEXP (note, 0)) <= 0)