Move operator_bitwise_not to the unified range-op table.
* range-op-mixed.h (class operator_bitwise_not): Move from... * range-op.cc (unified_table::unified_table): Add BIT_NOT_EXPR. (class operator_bitwise_not): Move from here. (integral_table::integral_table): Remove BIT_NOT_EXPR. (pointer_table::pointer_table): Remove BIT_NOT_EXPR.
This commit is contained in:
parent
443485b343
commit
39636a09da
2 changed files with 16 additions and 18 deletions
|
@ -514,4 +514,17 @@ public:
|
|||
relation_trio rel = TRIO_VARYING) const final override;
|
||||
};
|
||||
|
||||
class operator_bitwise_not : public range_operator
|
||||
{
|
||||
public:
|
||||
using range_operator::fold_range;
|
||||
using range_operator::op1_range;
|
||||
bool fold_range (irange &r, tree type,
|
||||
const irange &lh, const irange &rh,
|
||||
relation_trio rel = TRIO_VARYING) const final override;
|
||||
bool op1_range (irange &r, tree type,
|
||||
const irange &lhs, const irange &op2,
|
||||
relation_trio rel = TRIO_VARYING) const final override;
|
||||
};
|
||||
|
||||
#endif // GCC_RANGE_OP_MIXED_H
|
||||
|
|
|
@ -76,6 +76,7 @@ operator_minus op_minus;
|
|||
operator_negate op_negate;
|
||||
operator_mult op_mult;
|
||||
operator_addr_expr op_addr;
|
||||
operator_bitwise_not op_bitwise_not;
|
||||
|
||||
// Invoke the initialization routines for each class of range.
|
||||
|
||||
|
@ -105,8 +106,9 @@ unified_table::unified_table ()
|
|||
set (MULT_EXPR, op_mult);
|
||||
|
||||
// Occur in both integer and pointer tables, but currently share
|
||||
// integral implelmentation.
|
||||
// integral implementation.
|
||||
set (ADDR_EXPR, op_addr);
|
||||
set (BIT_NOT_EXPR, op_bitwise_not);
|
||||
}
|
||||
|
||||
// The tables are hidden and accessed via a simple extern function.
|
||||
|
@ -4080,21 +4082,6 @@ operator_logical_not::op1_range (irange &r,
|
|||
}
|
||||
|
||||
|
||||
class operator_bitwise_not : public range_operator
|
||||
{
|
||||
using range_operator::fold_range;
|
||||
using range_operator::op1_range;
|
||||
public:
|
||||
virtual bool fold_range (irange &r, tree type,
|
||||
const irange &lh,
|
||||
const irange &rh,
|
||||
relation_trio rel = TRIO_VARYING) const;
|
||||
virtual bool op1_range (irange &r, tree type,
|
||||
const irange &lhs,
|
||||
const irange &op2,
|
||||
relation_trio rel = TRIO_VARYING) const;
|
||||
} op_bitwise_not;
|
||||
|
||||
bool
|
||||
operator_bitwise_not::fold_range (irange &r, tree type,
|
||||
const irange &lh,
|
||||
|
@ -4602,7 +4589,6 @@ integral_table::integral_table ()
|
|||
set (BIT_AND_EXPR, op_bitwise_and);
|
||||
set (BIT_IOR_EXPR, op_bitwise_or);
|
||||
set (BIT_XOR_EXPR, op_bitwise_xor);
|
||||
set (BIT_NOT_EXPR, op_bitwise_not);
|
||||
}
|
||||
|
||||
// Initialize any integral operators to the primary table
|
||||
|
@ -4633,7 +4619,6 @@ pointer_table::pointer_table ()
|
|||
set (MIN_EXPR, op_ptr_min_max);
|
||||
set (MAX_EXPR, op_ptr_min_max);
|
||||
|
||||
set (BIT_NOT_EXPR, op_bitwise_not);
|
||||
set (BIT_XOR_EXPR, op_bitwise_xor);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue