From fe4e6c824a580012bf9034cc33f0b440df93f56f Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 23 Sep 2021 09:32:00 -0400 Subject: Look for a relation between operands only when possible. Do not look for a relation between 2 operands if there is no range-ops handler. gcc/ PR tree-optimization/102463 * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): If there is no range-ops handler, don't look for a relation. gcc/testsuite/ * gcc.dg/pr102463.c: New. --- gcc/gimple-range-fold.cc | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gcc/gimple-range-fold.cc') diff --git a/gcc/gimple-range-fold.cc b/gcc/gimple-range-fold.cc index 35324fd..bb09b75 100644 --- a/gcc/gimple-range-fold.cc +++ b/gcc/gimple-range-fold.cc @@ -1358,6 +1358,10 @@ fold_using_range::relation_fold_and_or (irange& lhs_range, gimple *s, range_operator *handler1 = gimple_range_handler (SSA_NAME_DEF_STMT (ssa1)); range_operator *handler2 = gimple_range_handler (SSA_NAME_DEF_STMT (ssa2)); + // If either handler is not present, no relation is found. + if (!handler1 || !handler2) + return; + int_range<2> bool_one (boolean_true_node, boolean_true_node); relation_kind relation1 = handler1->op1_op2_relation (bool_one); -- cgit v1.1