aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.c
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2022-01-12 13:31:08 -0500
committerAndrew MacLeod <amacleod@redhat.com>2022-01-13 13:51:30 -0500
commit49d5fb4feee831868d80fff4d024c271911c92ca (patch)
tree3ddef029955525380150636e13c8fb8252fb8e8f /gcc/fold-const.c
parent27e4260166950b784fe270ba4f0cae9a66faf1c4 (diff)
downloadgcc-49d5fb4feee831868d80fff4d024c271911c92ca.zip
gcc-49d5fb4feee831868d80fff4d024c271911c92ca.tar.gz
gcc-49d5fb4feee831868d80fff4d024c271911c92ca.tar.bz2
Allow more precision when querying from fold_const.
fold_const::expr_not_equal_to queries for a current range, but still uses the old value_range class. This is causing it to miss opportunities when ranger can provide something better. PR tree-optimization/83072 PR tree-optimization/83073 PR tree-optimization/97909 gcc/ * fold-const.c (expr_not_equal_to): Use a multi-range class. gcc/testsuite/ * gcc.dg/pr83072-2.c: New. * gcc.dg/pr83073.c: New.
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r--gcc/fold-const.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 397fa9a..cd540e1 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -10734,7 +10734,7 @@ tree_expr_nonzero_p (tree t)
bool
expr_not_equal_to (tree t, const wide_int &w)
{
- value_range vr;
+ int_range_max vr;
switch (TREE_CODE (t))
{
case INTEGER_CST: