diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2005-11-03 12:31:46 +0100 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2005-11-03 11:31:46 +0000 |
commit | bb11103a968f860541e589de3d62bd4e8ef7e084 (patch) | |
tree | 87ae1ad1b8a8da523947e3595cfa9bb3f01d51df /gcc/rtlanal.c | |
parent | ac746a73f02d1a83d0fb5df74326831566693c8d (diff) | |
download | gcc-bb11103a968f860541e589de3d62bd4e8ef7e084.zip gcc-bb11103a968f860541e589de3d62bd4e8ef7e084.tar.gz gcc-bb11103a968f860541e589de3d62bd4e8ef7e084.tar.bz2 |
re PR rtl-optimization/23585 (mem_fun* code fine with -O1, bus error with -O2)
PR rtl-optimization/23585
* rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
that can't trap plus a constant integer, if the mode has zero size.
From-SVN: r106427
Diffstat (limited to 'gcc/rtlanal.c')
-rw-r--r-- | gcc/rtlanal.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 594b2e4..6948851 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -267,7 +267,9 @@ rtx_addr_can_trap_p_1 (rtx x, enum machine_mode mode, bool unaligned_mems) { HOST_WIDE_INT offset; - if (!STRICT_ALIGNMENT || !unaligned_mems) + if (!STRICT_ALIGNMENT + || !unaligned_mems + || GET_MODE_SIZE (mode) == 0) return 0; offset = INTVAL (XEXP (x, 1)); |