From b9a28869b9314fb06386f6fd2c52d42644d6618d Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Mon, 9 May 2016 15:29:03 +0000 Subject: [PATCH] Missing pointer dereference in tree-affine.c wide_int_constant_multiple_p used: if (*mult_set && mult != 0) return false; to check whether we had previously seen a nonzero multiple, but "mult" is a pointer to the previous value rather than the previous value itself. Noticed by inspection while working on another patch, so I don't have a testcase. I tried adding an assert for combinations that were wrongly rejected before but it didn't trigger during a bootstrap and regtest. Tested on x86_64-linux-gnu. gcc/ * tree-affine.c (wide_int_constant_multiple_p): Add missing pointer dereference. From-SVN: r236040 --- gcc/ChangeLog | 5 +++++ gcc/tree-affine.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c303b94b900..85f0e6738f6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-05-09 Richard Sandiford + + * tree-affine.c (wide_int_constant_multiple_p): Add missing + pointer dereference. + 2016-05-09 Richard Biener PR tree-optimization/70985 diff --git a/gcc/tree-affine.c b/gcc/tree-affine.c index 32f23013374..4884241134a 100644 --- a/gcc/tree-affine.c +++ b/gcc/tree-affine.c @@ -769,7 +769,7 @@ wide_int_constant_multiple_p (const widest_int &val, const widest_int &div, if (val == 0) { - if (*mult_set && mult != 0) + if (*mult_set && *mult != 0) return false; *mult_set = true; *mult = 0; -- 2.30.2