On 2/15/22 10:56, Jakub Jelinek wrote:
+bool
+gori_compute::condexpr_adjust (irange &r1, irange &r2, gimple *, tree cond,
+ tree op1, tree op2, fur_source &src)
+{
+ int_range_max tmp, cond_true, cond_false;
+ tree ssa1 = gimple_range_ssa_p (op1);
+ tree ssa2 = gimple_range_ssa_p (op2);
+ if (!ssa1 && !ssa2)
+ return false;
+ if (!COMPARISON_CLASS_P (cond))
+ return false;
+ range_operator *hand = range_op_handler (TREE_CODE (cond), TREE_TYPE (op1));
Maybe I'm missing something, but I would expect calling range_op_handler
with the type of the comparison operands, i.e.
TREE_TYPE (TREE_OPERAND (cond, 0))
or so, rather than the type of lhs/op1/op2.
The comparison arguments could have a different type from lhs/op1/op2...
mmmm, true that. I will make that adjustment.
Andrew