aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2020-04-29 16:49:34 +0200
committerAldy Hernandez <aldyh@redhat.com>2020-04-29 18:36:35 +0200
commit79b681823666d62f8f86692304dc2a7775ba7ff9 (patch)
tree615f97e7370fca7ea58ad87e9c6215a453961f41 /gcc
parent4d54dcd0b255b32491a675941bc0748a9f435538 (diff)
downloadgcc-79b681823666d62f8f86692304dc2a7775ba7ff9.zip
gcc-79b681823666d62f8f86692304dc2a7775ba7ff9.tar.gz
gcc-79b681823666d62f8f86692304dc2a7775ba7ff9.tar.bz2
Return varying when unknown in rvrp_ranger.
All known regressions are because rvrp gets ahead of other passes, with the exception of pr88217, which is the -fstrict-enum problem. > FAIL: gcc.dg/ipa/pure-const-2.c scan-tree-dump local-pure-const1 "found to be pure: i_am_pure" > FAIL: gcc.dg/tree-ssa/vrp35.c scan-tree-dump vrp1 "Removing dead stmt [^\r\n]* = j_.* == 10" > FAIL: gcc.dg/tree-ssa/vrp36.c scan-tree-dump vrp1 "Removing dead stmt [^\r\n]* = i_.* == 1" > FAIL: gcc.dg/vrp-min-max-1.c scan-tree-dump-times mergephi2 "MAX_EXPR" 1 > FAIL: gcc.dg/vrp-min-max-1.c scan-tree-dump-times mergephi2 "MIN_EXPR" 1 < XFAIL: gcc.dg/tree-ssa/vrp113.c scan-tree-dump vrp1 "return 3;" < FAIL: g++.dg/pr88217.C -std=gnu++14 8 blank line(s) in output < FAIL: g++.dg/pr88217.C -std=gnu++14 (internal compiler error) < FAIL: g++.dg/pr88217.C -std=gnu++14 (test for excess errors) < FAIL: g++.dg/pr88217.C -std=gnu++17 8 blank line(s) in output < FAIL: g++.dg/pr88217.C -std=gnu++17 (internal compiler error) < FAIL: g++.dg/pr88217.C -std=gnu++17 (test for excess errors) < FAIL: g++.dg/pr88217.C -std=gnu++2a 8 blank line(s) in output < FAIL: g++.dg/pr88217.C -std=gnu++2a (internal compiler error) < FAIL: g++.dg/pr88217.C -std=gnu++2a (test for excess errors) > FAIL: g++.dg/tree-ssa/pr61034.C -std=gnu++14 scan-tree-dump-times fre3 "free" 10 > FAIL: g++.dg/tree-ssa/pr61034.C -std=gnu++14 scan-tree-dump-times fre3 "unreachable" 11 > FAIL: g++.dg/tree-ssa/pr61034.C -std=gnu++17 scan-tree-dump-times fre3 "free" 10 > FAIL: g++.dg/tree-ssa/pr61034.C -std=gnu++17 scan-tree-dump-times fre3 "unreachable" 11 > FAIL: g++.dg/tree-ssa/pr61034.C -std=gnu++2a scan-tree-dump-times fre3 "free" 10 > FAIL: g++.dg/tree-ssa/pr61034.C -std=gnu++2a scan-tree-dump-times fre3 "unreachable" 11 > FAIL: g++.dg/tree-ssa/pr61034.C -std=gnu++98 scan-tree-dump-times fre3 "free" 10 > FAIL: g++.dg/tree-ssa/pr61034.C -std=gnu++98 scan-tree-dump-times fre3 "unreachable" 11
Diffstat (limited to 'gcc')
-rw-r--r--gcc/gimple-ranger-vrp.cc7
1 files changed, 3 insertions, 4 deletions
diff --git a/gcc/gimple-ranger-vrp.cc b/gcc/gimple-ranger-vrp.cc
index 34f558b..571bce2 100644
--- a/gcc/gimple-ranger-vrp.cc
+++ b/gcc/gimple-ranger-vrp.cc
@@ -58,10 +58,9 @@ public:
gimple *stmt)
{
widest_irange r;
- value_range_equiv *vr = new (range_pool.allocate ()) value_range_equiv;
- if (!range_of_expr (r, const_cast<tree> (expr), stmt))
- vr->set_varying (TREE_TYPE (expr));
- return vr;
+ if (range_of_expr (r, const_cast<tree> (expr), stmt))
+ return new (range_pool.allocate ()) value_range_equiv (r);
+ return new (range_pool.allocate ()) value_range_equiv (TREE_TYPE (expr));
}
private:
object_allocator<value_range_equiv> range_pool;