aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2020-05-14 16:25:42 +0200
committerAldy Hernandez <aldyh@redhat.com>2020-05-14 19:09:26 +0200
commitb454a26fc2228ee93ccec766a619520a599c764d (patch)
tree7ac59facff570b98a71d28f2888f26501ef4110f
parentd7dc8055acb770d0551616e05164a77239de8b7a (diff)
downloadgcc-b454a26fc2228ee93ccec766a619520a599c764d.zip
gcc-b454a26fc2228ee93ccec766a619520a599c764d.tar.gz
gcc-b454a26fc2228ee93ccec766a619520a599c764d.tar.bz2
If argument of __builtin_constant_p resolves to a constant, return range of 1.
-rw-r--r--gcc/gimple-range-cfg.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/gimple-range-cfg.cc b/gcc/gimple-range-cfg.cc
index f7d61b8..0ed06a2 100644
--- a/gcc/gimple-range-cfg.cc
+++ b/gcc/gimple-range-cfg.cc
@@ -277,6 +277,12 @@ gimple_ranger::range_of_builtin_call (irange &r, gcall *call)
// r.equiv_clear ();
return true;
}
+ arg = gimple_call_arg (call, 0);
+ if (range_of_expr (r, arg, call) && r.singleton_p ())
+ {
+ r.set (build_one_cst (type), build_one_cst (type));
+ return true;
+ }
break;
CASE_CFN_FFS: