summaryrefslogtreecommitdiff
path: root/gcc/gimple-ssa-store-merging.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2018-03-19 21:49:57 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2018-03-19 21:49:57 +0100
commitf87b4b2fbfb3f0cbfe120666718408442900ff19 (patch)
tree2ca00b572a7473799987dabf491e1bcbffbd0395 /gcc/gimple-ssa-store-merging.c
parent90841d4302e804d0eafdd5e9565cda2d5ec166a8 (diff)
re PR tree-optimization/84946 (UBSAN: in mem_valid_for_store_merging ../../gcc/gimple-ssa-store-merging.c:3951)
PR tree-optimization/84946 * gimple-ssa-store-merging.c (mem_valid_for_store_merging): Compute bitsize + bitsize in poly_uint64 rather than poly_int64. From-SVN: r258665
Diffstat (limited to 'gcc/gimple-ssa-store-merging.c')
-rw-r--r--gcc/gimple-ssa-store-merging.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/gimple-ssa-store-merging.c b/gcc/gimple-ssa-store-merging.c
index 7b56031fd47..5955d6e1abc 100644
--- a/gcc/gimple-ssa-store-merging.c
+++ b/gcc/gimple-ssa-store-merging.c
@@ -3948,7 +3948,8 @@ mem_valid_for_store_merging (tree mem, poly_uint64 *pbitsize,
if (known_eq (bitregion_end, 0U))
{
bitregion_start = round_down_to_byte_boundary (bitpos);
- bitregion_end = round_up_to_byte_boundary (bitpos + bitsize);
+ bitregion_end = bitpos;
+ bitregion_end = round_up_to_byte_boundary (bitregion_end + bitsize);
}
if (offset != NULL_TREE)