]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ipa-ref.c (ipa_remove_stmt_references): Fix references traversal when removing refere...
authorIlya Enkovich <ilya.enkovich@intel.com>
Fri, 17 Jan 2014 05:36:19 +0000 (05:36 +0000)
committerKirill Yukhin <kyukhin@gcc.gnu.org>
Fri, 17 Jan 2014 05:36:19 +0000 (05:36 +0000)
       * ipa-ref.c (ipa_remove_stmt_references): Fix references
       traversal when removing references.

From-SVN: r206697

gcc/ChangeLog
gcc/ipa-ref.c

index 5a575e01303e8986afc4ece106ada0b4e2e03e54..5b0795dae239500c170a795e2ffc25bd1eed814f 100644 (file)
@@ -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
index b8c3d5116d5562ad6a68925f775dc2cca5132725..6aa41e6cfb4ee0e06d59b3ecb973dcf367a80cb4 100644 (file)
@@ -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.