aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtlanal.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@libertysurf.fr>2005-11-03 12:31:46 +0100
committerEric Botcazou <ebotcazou@gcc.gnu.org>2005-11-03 11:31:46 +0000
commitbb11103a968f860541e589de3d62bd4e8ef7e084 (patch)
tree87ae1ad1b8a8da523947e3595cfa9bb3f01d51df /gcc/rtlanal.c
parentac746a73f02d1a83d0fb5df74326831566693c8d (diff)
downloadgcc-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.c4
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));