diff options
author | Jan Hubicka <jh@suse.cz> | 2004-05-26 11:03:23 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2004-05-26 09:03:23 +0000 |
commit | f00d196d208240cea418ee3bfa86f453d7f4fe5c (patch) | |
tree | 1b8a8f66410d26400dd751cde715f5e1ae786684 /gcc | |
parent | 963e23c5c23463e331566ecf2ae065fe6f465e98 (diff) | |
download | gcc-f00d196d208240cea418ee3bfa86f453d7f4fe5c.zip gcc-f00d196d208240cea418ee3bfa86f453d7f4fe5c.tar.gz gcc-f00d196d208240cea418ee3bfa86f453d7f4fe5c.tar.bz2 |
* except.c (can_throw_internal): Notice RESX instructions.
From-SVN: r82281
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/except.c | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ee84a89..9ff2cd7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/except.c b/gcc/except.c index 2dfd073..5e9ce33 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) |