diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2023-06-10 16:33:17 -0400 |
---|---|---|
committer | Andrew MacLeod <amacleod@redhat.com> | 2023-06-12 10:48:38 -0400 |
commit | af5e7f0629dc56be3cc7df75fbb407f0dfd72252 (patch) | |
tree | 78cbd1b04f5abde23c2ad269c31913a9cef9a40e /gcc/range-op-mixed.h | |
parent | 8e0f292f92b5e6d7aa3b24c51b48db882d0d800b (diff) | |
download | gcc-af5e7f0629dc56be3cc7df75fbb407f0dfd72252.zip gcc-af5e7f0629dc56be3cc7df75fbb407f0dfd72252.tar.gz gcc-af5e7f0629dc56be3cc7df75fbb407f0dfd72252.tar.bz2 |
Add a hybrid BIT_IOR_EXPR operator for integer and pointer.
This adds an operator to the unified table for BIT_IOR_EXPR which will
select either the pointer or integer version based on the type passed
to the method. This is for use until we have a seperate PRANGE class.
* range-op-mixed.h (operator_bitwise_or): Remove final.
* range-op-ptr.cc (pointer_table::pointer_table): Remove BIT_IOR_EXPR.
(class hybrid_or_operator): New.
(range_op_table::initialize_pointer_ops): Add hybrid_or_operator.
* range-op.cc (unified_table::unified_table): Comment out BIT_IOR_EXPR.
Diffstat (limited to 'gcc/range-op-mixed.h')
-rw-r--r-- | gcc/range-op-mixed.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/range-op-mixed.h b/gcc/range-op-mixed.h index 4177818..e4852e9 100644 --- a/gcc/range-op-mixed.h +++ b/gcc/range-op-mixed.h @@ -609,16 +609,16 @@ public: using range_operator::op2_range; bool op1_range (irange &r, tree type, const irange &lhs, const irange &op2, - relation_trio rel = TRIO_VARYING) const final override; + relation_trio rel = TRIO_VARYING) const override; bool op2_range (irange &r, tree type, const irange &lhs, const irange &op1, - relation_trio rel = TRIO_VARYING) const final override; + relation_trio rel = TRIO_VARYING) const override; void update_bitmask (irange &r, const irange &lh, - const irange &rh) const final override; -private: + const irange &rh) const override; +protected: void wi_fold (irange &r, tree type, const wide_int &lh_lb, const wide_int &lh_ub, const wide_int &rh_lb, - const wide_int &rh_ub) const final override; + const wide_int &rh_ub) const override; }; class operator_min : public range_operator |