From: Jan Hubicka Date: Wed, 26 May 2004 09:03:23 +0000 (+0200) Subject: * except.c (can_throw_internal): Notice RESX instructions. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f00d196d208240cea418ee3bfa86f453d7f4fe5c;p=gcc.git * except.c (can_throw_internal): Notice RESX instructions. From-SVN: r82281 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ee84a899ff1..9ff2cd70a6c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2004-05-26 Jan Hubicka + + * except.c (can_throw_internal): Notice RESX instructions. + 2004-05-26 Eric Botcazou * varasm.c (output_constant) : Pass the minimum diff --git a/gcc/except.c b/gcc/except.c index 2dfd073e70a..5e9ce337431 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -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)