aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-ivopts.c
diff options
context:
space:
mode:
authorMarkus Trippelsdorf <markus@trippelsdorf.de>2014-11-20 16:36:14 +0000
committerMarkus Trippelsdorf <trippels@gcc.gnu.org>2014-11-20 16:36:14 +0000
commitd7ca26e4167f1c7abe50041c838111ee4fab15d1 (patch)
treebd5b144b7bbe1e7b714275f855291e53127e214a /gcc/tree-ssa-loop-ivopts.c
parent46ed60245a76b90e6161134fc6a22480aa1248fe (diff)
downloadgcc-d7ca26e4167f1c7abe50041c838111ee4fab15d1.zip
gcc-d7ca26e4167f1c7abe50041c838111ee4fab15d1.tar.gz
gcc-d7ca26e4167f1c7abe50041c838111ee4fab15d1.tar.bz2
PR63426 Fix various signed integer overflows
Running the testsuite after bootstrap-ubsan on gcc112 shows several issues. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63426 for the full list. This patch fixes several of them. 2014-11-20 Markus Trippelsdorf <markus@trippelsdorf.de> * config/rs6000/constraints.md: Avoid signed integer overflows. * config/rs6000/predicates.md: Likewise. * config/rs6000/rs6000.c (num_insns_constant_wide): Likewise. (includes_rldic_lshift_p): Likewise. (includes_rldicr_lshift_p): Likewise. * emit-rtl.c (const_wide_int_htab_hash): Likewise. * loop-iv.c (determine_max_iter): Likewise. (iv_number_of_iterations): Likewise. * tree-ssa-loop-ivopts.c (get_computation_cost_at): Likewise. * varasm.c (get_section_anchor): Likewise. From-SVN: r217886
Diffstat (limited to 'gcc/tree-ssa-loop-ivopts.c')
-rw-r--r--gcc/tree-ssa-loop-ivopts.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index 4007e54..fca18b6 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -4183,7 +4183,7 @@ get_computation_cost_at (struct ivopts_data *data,
if (cst_and_fits_in_hwi (cbase))
{
- offset = - ratio * int_cst_value (cbase);
+ offset = - ratio * (unsigned HOST_WIDE_INT) int_cst_value (cbase);
cost = difference_cost (data,
ubase, build_int_cst (utype, 0),
&symbol_present, &var_present, &offset,