]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Use Value_Range when applying inferred ranges.
authorAndrew MacLeod <amacleod@redhat.com>
Wed, 19 Oct 2022 13:21:22 +0000 (09:21 -0400)
committerAndrew MacLeod <amacleod@redhat.com>
Wed, 19 Oct 2022 15:56:45 +0000 (11:56 -0400)
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.

gcc/gimple-range-cache.cc

index 0b9aa3639c5d5ca0528fdf48f4465627bce80b3e..f279371948a54a19e126a7aacc13c06ead3136cb 100644 (file)
@@ -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)))