aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2022-10-19 09:21:22 -0400
committerAndrew MacLeod <amacleod@redhat.com>2022-10-19 11:56:45 -0400
commit69a233610f6b27cd4283561569d8ce0f35044dc4 (patch)
tree3ed43fbeb9757a78e807312905406f09463e7750 /gcc
parent47684e58edc92ffdd4c636dbd34359b4c22e863a (diff)
downloadgcc-69a233610f6b27cd4283561569d8ce0f35044dc4.zip
gcc-69a233610f6b27cd4283561569d8ce0f35044dc4.tar.gz
gcc-69a233610f6b27cd4283561569d8ce0f35044dc4.tar.bz2
Use Value_Range when applying inferred ranges.
Applying an inferred range is using int_range_ma as the temporary rather than the general purpose Value_Range. This causes it to trap if we have a non-integral inferred range. * gimple-range-cache.cc (ranger_cache::range_from_dom): Use Value_Range not int_range_max.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/gimple-range-cache.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/gimple-range-cache.cc b/gcc/gimple-range-cache.cc
index 0b9aa36..f279371 100644
--- a/gcc/gimple-range-cache.cc
+++ b/gcc/gimple-range-cache.cc
@@ -1546,7 +1546,6 @@ ranger_cache::range_from_dom (vrange &r, tree name, basic_block start_bb,
void
ranger_cache::apply_inferred_ranges (gimple *s)
{
- int_range_max r;
bool update = true;
basic_block bb = gimple_bb (s);
@@ -1572,6 +1571,7 @@ ranger_cache::apply_inferred_ranges (gimple *s)
m_exit.add_range (name, bb, infer.range (x));
if (update)
{
+ Value_Range r (TREE_TYPE (name));
if (!m_on_entry.get_bb_range (r, name, bb))
exit_range (r, name, bb, RFD_READ_ONLY);
if (r.intersect (infer.range (x)))