summaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2019-04-10 09:28:05 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2019-04-10 09:28:05 +0200
commit9d40923511b5f6a8d33b20cae6d9a6fe3e11f16b (patch)
tree6798b12a27a155124bd911473cdfa248973e9162 /gcc/expr.c
parentc9c5e18883125c90b3cbdb61b651719253a0ff90 (diff)
re PR middle-end/90025 (botan2 miscompilation on s390x-linux since r268957)
PR middle-end/90025 * expr.c (store_expr): Set properly size on the MEM passed to clear_storage. * gcc.c-torture/execute/pr90025.c: New test. From-SVN: r270247
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 9ff5e5f2d76..fa15b7eceae 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -5658,7 +5658,8 @@ store_expr (tree exp, rtx target, int call_param_p,
dest_mem = store_by_pieces (target, str_copy_len, string_cst_read_str,
(void *) str, MEM_ALIGN (target), false,
RETURN_END);
- clear_storage (adjust_address (dest_mem, BLKmode, 0),
+ clear_storage (adjust_address_1 (dest_mem, BLKmode, 0, 1, 1, 0,
+ exp_len - str_copy_len),
GEN_INT (exp_len - str_copy_len), BLOCK_OP_NORMAL);
return NULL_RTX;
}