diff options
author | Ilya Enkovich <ilya.enkovich@intel.com> | 2014-01-17 05:36:19 +0000 |
---|---|---|
committer | Kirill Yukhin <kyukhin@gcc.gnu.org> | 2014-01-17 05:36:19 +0000 |
commit | c68b3f5291b6588570760d247a3f5223cb087915 (patch) | |
tree | 90a1309bc0a8bc2bd8d5378215cc4fff675d2560 | |
parent | b5407ad1efa9c19efa34d187ad9ee60f248ede60 (diff) | |
download | gcc-c68b3f5291b6588570760d247a3f5223cb087915.zip gcc-c68b3f5291b6588570760d247a3f5223cb087915.tar.gz gcc-c68b3f5291b6588570760d247a3f5223cb087915.tar.bz2 |
ipa-ref.c (ipa_remove_stmt_references): Fix references traversal when removing references.
* ipa-ref.c (ipa_remove_stmt_references): Fix references
traversal when removing references.
From-SVN: r206697
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ipa-ref.c | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5a575e0..5b0795d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com> + + * ipa-ref.c (ipa_remove_stmt_references): Fix references + traversal when removing references. + 2014-01-16 Jan Hubicka <jh@suse.cz> PR ipa/59775 diff --git a/gcc/ipa-ref.c b/gcc/ipa-ref.c index b8c3d51..6aa41e6 100644 --- a/gcc/ipa-ref.c +++ b/gcc/ipa-ref.c @@ -291,11 +291,13 @@ void ipa_remove_stmt_references (symtab_node *referring_node, gimple stmt) { struct ipa_ref *r = NULL; - int i; + int i = 0; - for (i = 0; ipa_ref_list_reference_iterate (&referring_node->ref_list, i, r); i++) + while (ipa_ref_list_reference_iterate (&referring_node->ref_list, i, r)) if (r->stmt == stmt) ipa_remove_reference (r); + else + i++; } /* Remove all stmt references in non-speculative references. |