This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Missing pointer dereference in tree-affine.c
- From: Richard Sandiford <richard dot sandiford at arm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 05 May 2016 15:19:45 +0100
- Subject: Missing pointer dereference in tree-affine.c
- Authentication-results: sourceware.org; auth=none
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. OK to install?
Thanks,
Richard
gcc/
* tree-affine.c (wide_int_constant_multiple_p): Add missing
pointer dereference.
diff --git a/gcc/tree-affine.c b/gcc/tree-affine.c
index 32f2301..4884241 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;