diff options
author | Jan Hubicka <jh@suse.cz> | 2019-07-04 18:30:53 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2019-07-04 16:30:53 +0000 |
commit | 532bb2f908e6a14eda50ebd4debda9d063e4f8e7 (patch) | |
tree | 451bd36ff4ccd507d99c1196ece43ec7b439626d | |
parent | 2b442504a0a4073992da8985ebcf1998ef4aff5e (diff) | |
download | gcc-532bb2f908e6a14eda50ebd4debda9d063e4f8e7.zip gcc-532bb2f908e6a14eda50ebd4debda9d063e4f8e7.tar.gz gcc-532bb2f908e6a14eda50ebd4debda9d063e4f8e7.tar.bz2 |
tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p): Fix check for match in the ref walk.
* tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
Fix check for match in the ref walk.
From-SVN: r273090
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-ssa-alias.c | 8 |
2 files changed, 7 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d4e9991..3517011 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-07-04 Jan Hubicka <jh@suse.cz> + + * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p): + Fix check for match in the ref walk. + 2019-07-04 Martin Liska <mliska@suse.cz> * tree-ssa-loop-niter.c (get_upper_bound_based_on_builtin_expr_with_prob): diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c index d76656e..5c5cbe4 100644 --- a/gcc/tree-ssa-alias.c +++ b/gcc/tree-ssa-alias.c @@ -1153,15 +1153,13 @@ nonoverlapping_component_refs_since_match_p (tree match1, tree ref1, auto_vec<tree, 16> component_refs2; /* Create the stack of handled components for REF1. */ - while (handled_component_p (ref1)) + while (handled_component_p (ref1) && ref1 != match1) { if (TREE_CODE (ref1) == VIEW_CONVERT_EXPR || TREE_CODE (ref1) == BIT_FIELD_REF) component_refs1.truncate (0); else component_refs1.safe_push (ref1); - if (ref1 == match1) - break; ref1 = TREE_OPERAND (ref1, 0); } if (TREE_CODE (ref1) == MEM_REF && ref1 != match1) @@ -1180,15 +1178,13 @@ nonoverlapping_component_refs_since_match_p (tree match1, tree ref1, } /* Create the stack of handled components for REF2. */ - while (handled_component_p (ref2)) + while (handled_component_p (ref2) && ref2 != match2) { if (TREE_CODE (ref2) == VIEW_CONVERT_EXPR || TREE_CODE (ref2) == BIT_FIELD_REF) component_refs2.truncate (0); else component_refs2.safe_push (ref2); - if (ref2 == match2) - break; ref2 = TREE_OPERAND (ref2, 0); } if (TREE_CODE (ref2) == MEM_REF && ref2 != match2) |