Do not use tree_to_wide_ref that point to a temporary (PR c++/90587).

2019-05-23  Martin Liska  <mliska@suse.cz>

	PR c++/90587
	* tree-ssa-uninit.c (value_sat_pred_p): The result of &
	operation points to a temporary (pointed via tree_to_wide_ref)
	that is out of scope after the &.

From-SVN: r271555
This commit is contained in:
Martin Liska 2019-05-23 14:07:09 +02:00 committed by Martin Liska
parent 16f8992e7f
commit 56a4e074ee
2 changed files with 8 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2019-05-23 Martin Liska <mliska@suse.cz>
PR c++/90587
* tree-ssa-uninit.c (value_sat_pred_p): The result of &
operation points to a temporary (pointed via tree_to_wide_ref)
that is out of scope after the &.
2019-05-23 Jonathan Wakely <jwakely@redhat.com>
PR c++/90592

View File

@ -1058,7 +1058,7 @@ value_sat_pred_p (tree val, tree boundary, enum tree_code cmpc,
if (cmpc != BIT_AND_EXPR)
return is_value_included_in (val, boundary, cmpc);
wi::tree_to_wide_ref andw = wi::to_wide (val) & wi::to_wide (boundary);
wide_int andw = wi::to_wide (val) & wi::to_wide (boundary);
if (exact_p)
return andw == wi::to_wide (val);
else