diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2022-10-19 09:21:22 -0400 |
---|---|---|
committer | Andrew MacLeod <amacleod@redhat.com> | 2022-10-19 11:56:45 -0400 |
commit | 69a233610f6b27cd4283561569d8ce0f35044dc4 (patch) | |
tree | 3ed43fbeb9757a78e807312905406f09463e7750 /gcc | |
parent | 47684e58edc92ffdd4c636dbd34359b4c22e863a (diff) | |
download | gcc-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.cc | 2 |
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))) |