From a369ac78b887e219a375e17d6817c1f744e71779 Mon Sep 17 00:00:00 2001 From: marxin Date: Thu, 19 Oct 2017 13:38:01 +0200 Subject: [PATCH] Fix UBSAN errors in dse.c (PR rtl-optimization/82044). gcc/ChangeLog: 2017-10-19 Martin Liska PR rtl-optimization/82044 PR tree-optimization/82042 * dse.c (check_mem_read_rtx): Check for overflow. --- gcc/dse.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gcc/dse.c b/gcc/dse.c index 563ca9f56f3..f6d5e6e6fe2 100644 --- a/gcc/dse.c +++ b/gcc/dse.c @@ -1981,6 +1981,12 @@ check_mem_read_rtx (rtx *loc, bb_info_t bb_info) else width = GET_MODE_SIZE (GET_MODE (mem)); + if (offset > HOST_WIDE_INT_MAX - width) + { + clear_rhs_from_active_local_stores (); + return; + } + read_info = read_info_type_pool.allocate (); read_info->group_id = group_id; read_info->mem = mem; -- 2.14.3