diff options
author | Mark Mitchell <mark@codesourcery.com> | 2000-05-25 23:43:43 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2000-05-25 23:43:43 +0000 |
commit | 0519ce3019d4a288ca12c3ac21086f2f0cb5e28d (patch) | |
tree | 6156335a45a8824c4127a4a8fb96fa8c5f78b50c /gcc/resource.c | |
parent | 3ec6bad360a051793659af054b5ecf41318a2a8b (diff) | |
download | gcc-0519ce3019d4a288ca12c3ac21086f2f0cb5e28d.tar.gz |
except.h (can_throw): Declare it.
* except.h (can_throw): Declare it.
* except.c (can_throw): Give it external linkage.
* resource.c (find_dead_or_set_registers): Use can_throw.
From-SVN: r34178
Diffstat (limited to 'gcc/resource.c')
-rw-r--r-- | gcc/resource.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/resource.c b/gcc/resource.c index 23f5e0e4ead..d84fabeee1d 100644 --- a/gcc/resource.c +++ b/gcc/resource.c @@ -422,6 +422,14 @@ find_dead_or_set_registers (target, res, jump_target, jump_count, set, needed) rtx this_jump_insn = insn; next = NEXT_INSN (insn); + + /* If this instruction can throw an exception, then we don't + know where we might end up next. That means that we have to + assume that whatever we have already marked as live really is + live. */ + if (can_throw (insn)) + break; + switch (GET_CODE (insn)) { case CODE_LABEL: |