summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/tree-ssa-uninit.c2
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ba549f754e2..5b12af809ab 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/tree-ssa-uninit.c b/gcc/tree-ssa-uninit.c
index bc07afe32c8..fe8f8f0bc28 100644
--- a/gcc/tree-ssa-uninit.c
+++ b/gcc/tree-ssa-uninit.c
@@ -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