diff options
author | Tom de Vries <tom@codesourcery.com> | 2017-07-20 07:16:01 +0000 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2017-07-20 07:16:01 +0000 |
commit | c9930ecd9c089bc2c9e82136280c9d2f494242bc (patch) | |
tree | b2e828e725132ec617b56ff3cd925f6435ba89ae | |
parent | 2071f8f980cc0de02af3d7d7de201f4f189058ff (diff) | |
download | gcc-c9930ecd9c089bc2c9e82136280c9d2f494242bc.zip gcc-c9930ecd9c089bc2c9e82136280c9d2f494242bc.tar.gz gcc-c9930ecd9c089bc2c9e82136280c9d2f494242bc.tar.bz2 |
Fix phi arg location in find_implicit_erroneous_behavior
2017-07-20 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/81489
* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
read of phi arg location to before loop that modifies phi.
From-SVN: r250378
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/gimple-ssa-isolate-paths.c | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 499249b..b6750e8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2017-07-20 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/81489 + * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move + read of phi arg location to before loop that modifies phi. + 2017-07-20 Naveen H.S <Naveen.Hurugalawadi@cavium.com> * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): diff --git a/gcc/gimple-ssa-isolate-paths.c b/gcc/gimple-ssa-isolate-paths.c index 7ad39b4..fbc41057 100644 --- a/gcc/gimple-ssa-isolate-paths.c +++ b/gcc/gimple-ssa-isolate-paths.c @@ -442,6 +442,8 @@ find_implicit_erroneous_behavior (void) if (!integer_zerop (op)) continue; + location_t phi_arg_loc = gimple_phi_arg_location (phi, i); + /* We've got a NULL PHI argument. Now see if the PHI's result is dereferenced within BB. */ FOR_EACH_IMM_USE_STMT (use_stmt, iter, lhs) @@ -454,7 +456,7 @@ find_implicit_erroneous_behavior (void) location_t loc = gimple_location (use_stmt) ? gimple_location (use_stmt) - : gimple_phi_arg_location (phi, i); + : phi_arg_loc; if (stmt_uses_name_in_undefined_way (use_stmt, lhs, loc)) { |