aboutsummaryrefslogtreecommitdiff
path: root/gcc/value-range.h
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2023-06-15 17:28:21 +0200
committerAldy Hernandez <aldyh@redhat.com>2023-06-29 18:49:27 +0200
commit27a0f014170db29ae423b4bf7f9b630ccc6a5973 (patch)
treef82ec547d767cae0438568ea8d68571f16653cc6 /gcc/value-range.h
parentc41332abe7da981abdc23440e7e859b92ba065ec (diff)
downloadgcc-27a0f014170db29ae423b4bf7f9b630ccc6a5973.zip
gcc-27a0f014170db29ae423b4bf7f9b630ccc6a5973.tar.gz
gcc-27a0f014170db29ae423b4bf7f9b630ccc6a5973.tar.bz2
Tidy up the range normalization code.
There's a few spots where a range is being altered in-place, but we fail to call normalize the range. This patch makes sure we always call normalize_kind(), and that normalize_kind in turn calls verify_range to make sure verything is canonical. gcc/ChangeLog: * value-range.cc (frange::set): Do not call verify_range. (frange::normalize_kind): Verify range. (frange::union_nans): Do not call verify_range. (frange::union_): Same. (frange::intersect): Same. (irange::irange_single_pair_union): Call normalize_kind if necessary. (irange::union_): Same. (irange::intersect): Same. (irange::set_range_from_nonzero_bits): Verify range. (irange::set_nonzero_bits): Call normalize_kind if necessary. (irange::get_nonzero_bits): Tweak comment. (irange::intersect_nonzero_bits): Call normalize_kind if necessary. (irange::union_nonzero_bits): Same. * value-range.h (irange::normalize_kind): Verify range.
Diffstat (limited to 'gcc/value-range.h')
-rw-r--r--gcc/value-range.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/value-range.h b/gcc/value-range.h
index 9103e9c..5d4eaf8 100644
--- a/gcc/value-range.h
+++ b/gcc/value-range.h
@@ -1002,6 +1002,8 @@ irange::normalize_kind ()
else if (m_kind == VR_ANTI_RANGE)
set_undefined ();
}
+ if (flag_checking)
+ verify_range ();
}
inline bool