diff options
| author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-09-01 23:35:19 +0000 |
|---|---|---|
| committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-09-01 23:35:19 +0000 |
| commit | f0fbc1cd7ed3e1b9f66221a25508e3f3901749bf (patch) | |
| tree | 287a02368141acc854ed200b5c234a99116f4e9c | |
| parent | 5e0d56290d32f4b7adec3849f728406022471e63 (diff) | |
| download | ppe42-gcc-f0fbc1cd7ed3e1b9f66221a25508e3f3901749bf.tar.gz ppe42-gcc-f0fbc1cd7ed3e1b9f66221a25508e3f3901749bf.zip | |
PR 23676
* reload1.c (reload_as_needed): Check !CALL_P before calling
fixup_eh_region_note.
* rtlanal.c (may_trap_p): SUBREG by itself cannot trap.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103751 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 7 | ||||
| -rw-r--r-- | gcc/reload1.c | 2 | ||||
| -rw-r--r-- | gcc/rtlanal.c | 1 |
3 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9d20f4b542a..952d7e1b680 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2005-09-01 Richard Henderson <rth@redhat.com> + + PR 23676 + * reload1.c (reload_as_needed): Check !CALL_P before calling + fixup_eh_region_note. + * rtlanal.c (may_trap_p): SUBREG by itself cannot trap. + 2005-09-01 DJ Delorie <dj@redhat.com> * varasm.c (output_constant): Let the target resolve diff --git a/gcc/reload1.c b/gcc/reload1.c index eb2ce0f3d74..236afcef86a 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -3926,7 +3926,7 @@ reload_as_needed (int live_known) subst_reloads (insn); /* Adjust the exception region notes for loads and stores. */ - if (flag_non_call_exceptions) + if (flag_non_call_exceptions && !CALL_P (insn)) fixup_eh_region_note (insn, prev, next); /* If this was an ASM, make sure that all the reload insns diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 6a3be0e7918..92068a1fd31 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -2166,6 +2166,7 @@ may_trap_p (rtx x) case NEG: case ABS: + case SUBREG: /* These operations don't trap even with floating point. */ break; |

