diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2021-11-13 12:16:40 +0100 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2021-11-15 17:31:50 +0100 |
commit | 6c29c9d6a7d80ece7e08eb546ca4a1ba1430a9b3 (patch) | |
tree | 8ab93363ee08ab07a33ed103fbc4d0f799114a30 /gcc/value-range.cc | |
parent | 82ec4cb3c43c7429be6b902d96770a6435fa068b (diff) | |
download | gcc-6c29c9d6a7d80ece7e08eb546ca4a1ba1430a9b3.zip gcc-6c29c9d6a7d80ece7e08eb546ca4a1ba1430a9b3.tar.gz gcc-6c29c9d6a7d80ece7e08eb546ca4a1ba1430a9b3.tar.bz2 |
Drop tree overflow in irange setter.
Drop meaningless overflow that may creep into the IL.
gcc/ChangeLog:
PR tree-optimization/103207
* value-range.cc (irange::set): Drop overflow.
gcc/testsuite/ChangeLog:
* gcc.dg/pr103207.c: New test.
Diffstat (limited to 'gcc/value-range.cc')
-rw-r--r-- | gcc/value-range.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/value-range.cc b/gcc/value-range.cc index caef249..82509fa 100644 --- a/gcc/value-range.cc +++ b/gcc/value-range.cc @@ -270,6 +270,14 @@ irange::irange_set_anti_range (tree min, tree max) void irange::set (tree min, tree max, value_range_kind kind) { + if (kind != VR_UNDEFINED) + { + if (TREE_OVERFLOW_P (min)) + min = drop_tree_overflow (min); + if (TREE_OVERFLOW_P (max)) + max = drop_tree_overflow (max); + } + if (!legacy_mode_p ()) { if (kind == VR_RANGE) |