* except.c (can_throw_internal): Notice RESX instructions.
authorJan Hubicka <jh@suse.cz>
Wed, 26 May 2004 09:03:23 +0000 (11:03 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Wed, 26 May 2004 09:03:23 +0000 (09:03 +0000)
From-SVN: r82281

gcc/ChangeLog
gcc/except.c

index ee84a899ff1ee3512a4b1834e8bbce961ad41da7..9ff2cd70a6cc033a3543497eb6fdaade9f1bb753 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 2dfd073e70a792e1577a1d7a56b89568e2df45ef..5e9ce337431c9b70906605dd6a4b2a71981eebc1 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)