summaryrefslogtreecommitdiff
path: root/gcc/gimple-ssa-isolate-paths.c
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2017-07-20 07:16:01 +0000
committerTom de Vries <vries@gcc.gnu.org>2017-07-20 07:16:01 +0000
commitc9930ecd9c089bc2c9e82136280c9d2f494242bc (patch)
treeb2e828e725132ec617b56ff3cd925f6435ba89ae /gcc/gimple-ssa-isolate-paths.c
parent2071f8f980cc0de02af3d7d7de201f4f189058ff (diff)
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
Diffstat (limited to 'gcc/gimple-ssa-isolate-paths.c')
-rw-r--r--gcc/gimple-ssa-isolate-paths.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/gimple-ssa-isolate-paths.c b/gcc/gimple-ssa-isolate-paths.c
index 7ad39b4e09b..fbc41057463 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))
{