]> git.ipfire.org Git - thirdparty/gcc.git/commit
Add overflow API for plus minus mult on range
authorJiufu Guo <guojiufu@linux.ibm.com>
Wed, 30 Aug 2023 08:59:16 +0000 (16:59 +0800)
committerguojiufu <guojiufu@linux.ibm.com>
Thu, 31 Aug 2023 01:56:44 +0000 (09:56 +0800)
commit97442a087bed186d96170151c1924344c3370a2b
tree7c94ba94ed31f1ac1c6787a8cbd06e8dfd8a51bf
parentffb8568abb2b21bb1b82b9f684794fa34804c84d
Add overflow API for plus minus mult on range

In previous reviews, adding overflow APIs to range-op would be useful.
Those APIs could help to check if overflow happens when operating
between two 'range's, like: plus, minus, and mult.

Previous discussions are here:
https://gcc.gnu.org/pipermail/gcc-patches/2023-July/624067.html
https://gcc.gnu.org/pipermail/gcc-patches/2023-July/624701.html

gcc/ChangeLog:

* range-op-mixed.h (operator_plus::overflow_free_p): New declare.
(operator_minus::overflow_free_p): New declare.
(operator_mult::overflow_free_p): New declare.
* range-op.cc (range_op_handler::overflow_free_p): New function.
(range_operator::overflow_free_p): New default function.
(operator_plus::overflow_free_p): New function.
(operator_minus::overflow_free_p): New function.
(operator_mult::overflow_free_p): New function.
* range-op.h (range_op_handler::overflow_free_p): New declare.
(range_operator::overflow_free_p): New declare.
* value-range.cc (irange::nonnegative_p): New function.
(irange::nonpositive_p): New function.
* value-range.h (irange::nonnegative_p): New declare.
(irange::nonpositive_p): New declare.
gcc/range-op-mixed.h
gcc/range-op.cc
gcc/range-op.h
gcc/value-range.cc
gcc/value-range.h