Commit b9a28869 by Richard Sandiford Committed by Richard Sandiford

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
parent 75a6b91a
2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
* tree-affine.c (wide_int_constant_multiple_p): Add missing
pointer dereference.
2016-05-09 Richard Biener <rguenther@suse.de> 2016-05-09 Richard Biener <rguenther@suse.de>
PR tree-optimization/70985 PR tree-optimization/70985
......
...@@ -769,7 +769,7 @@ wide_int_constant_multiple_p (const widest_int &val, const widest_int &div, ...@@ -769,7 +769,7 @@ wide_int_constant_multiple_p (const widest_int &val, const widest_int &div,
if (val == 0) if (val == 0)
{ {
if (*mult_set && mult != 0) if (*mult_set && *mult != 0)
return false; return false;
*mult_set = true; *mult_set = true;
*mult = 0; *mult = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment