aboutsummaryrefslogtreecommitdiff
path: root/gcc/range-op-mixed.h
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2023-06-10 16:33:17 -0400
committerAndrew MacLeod <amacleod@redhat.com>2023-06-12 10:48:38 -0400
commitaf5e7f0629dc56be3cc7df75fbb407f0dfd72252 (patch)
tree78cbd1b04f5abde23c2ad269c31913a9cef9a40e /gcc/range-op-mixed.h
parent8e0f292f92b5e6d7aa3b24c51b48db882d0d800b (diff)
downloadgcc-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.h10
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