diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2012-06-18 09:32:51 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2012-06-18 09:32:51 +0000 |
commit | b7104c55e7d5c7335d1263131ac12ec9214b1dce (patch) | |
tree | a6dd8cf008238dc0761746893e301eb03e72b83f /gcc/expr.c | |
parent | 89029ba5dac6b6ae532b5ca2dd8b6d1e9c990784 (diff) | |
download | gcc-b7104c55e7d5c7335d1263131ac12ec9214b1dce.zip gcc-b7104c55e7d5c7335d1263131ac12ec9214b1dce.tar.gz gcc-b7104c55e7d5c7335d1263131ac12ec9214b1dce.tar.bz2 |
re PR middle-end/53698 (ICE: in plus_constant, at explow.c:88 with -O -mx32 -maddress-mode=long -fno-tree-dominator-opts)
gcc/
PR middle-end/53698
* expr.c (expand_expr_addr_expr_1): Convert to tmode before
performing an addition.
gcc/testsuite/
PR middle-end/53698
* gcc.target/i386/pr53698.c: New test.
From-SVN: r188725
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -7630,6 +7630,7 @@ expand_expr_addr_expr_1 (tree exp, rtx target, enum machine_mode tmode, of such an object. */ gcc_assert ((bitpos % BITS_PER_UNIT) == 0); + result = convert_memory_address_addr_space (tmode, result, as); result = plus_constant (tmode, result, bitpos / BITS_PER_UNIT); if (modifier < EXPAND_SUM) result = force_operand (result, target); |