diff options
author | David Malcolm <dmalcolm@redhat.com> | 2017-12-14 17:15:39 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2017-12-14 17:15:39 +0000 |
commit | 5505bb43b7b3277354563b69d1287efca21315cb (patch) | |
tree | 7d33437a2b214b3948aaf13e6a38a38a5cc1a739 /gcc/domwalk.h | |
parent | 9de2192154a3d5ec055b535aa143a927fcc2c2ee (diff) | |
download | gcc-5505bb43b7b3277354563b69d1287efca21315cb.zip gcc-5505bb43b7b3277354563b69d1287efca21315cb.tar.gz gcc-5505bb43b7b3277354563b69d1287efca21315cb.tar.bz2 |
vrp_prop: Use dom_walker for -Warray-bounds (PR tree-optimization/83312)
gcc/ChangeLog:
PR tree-optimization/83312
* domwalk.h (dom_walker::dom_walker): Fix typo in comment.
* tree-cfg.c (find_taken_edge): Update to handle NULL_TREE for
"val" param, and to cope with arbitrary basic blocks.
(find_taken_edge_cond_expr): Add "cond_stmt" param and use it to
handle NULL_TREE for "val", dropping "bb" param.
(find_taken_edge_switch_expr): Make "switch_stmt" param const and
drop "bb" param. Handle NULL_TREE for "val".
(find_case_label_for_value): Make "switch_stmt" param const.
* tree-vrp.c (class check_array_bounds_dom_walker): New subclass
of dom_walker.
(vrp_prop::check_all_array_refs): Reimplement as...
(check_array_bounds_dom_walker::before_dom_children): ...this new
vfunc. Replace linear search through BB block list, excluding
those with non-executable in-edges via dominator walk.
gcc/testsuite/ChangeLog:
PR tree-optimization/83312
* gcc.dg/pr83312.c: New test case.
From-SVN: r255649
Diffstat (limited to 'gcc/domwalk.h')
-rw-r--r-- | gcc/domwalk.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/domwalk.h b/gcc/domwalk.h index 6ac93eb..c7e3450 100644 --- a/gcc/domwalk.h +++ b/gcc/domwalk.h @@ -32,7 +32,7 @@ class dom_walker public: static const edge STOP; - /* Use SKIP_UNREACHBLE_BLOCKS = true when your client can discover + /* Use SKIP_UNREACHABLE_BLOCKS = true when your client can discover that some edges are not executable. If a client can discover that a COND, SWITCH or GOTO has a static |