From: Ilya Enkovich Date: Fri, 17 Jan 2014 05:36:19 +0000 (+0000) Subject: ipa-ref.c (ipa_remove_stmt_references): Fix references traversal when removing refere... X-Git-Tag: releases/gcc-4.9.0~1619 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c68b3f5291b6588570760d247a3f5223cb087915;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5a575e01303e..5b0795dae239 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-01-16 Ilya Enkovich + + * ipa-ref.c (ipa_remove_stmt_references): Fix references + traversal when removing references. + 2014-01-16 Jan Hubicka PR ipa/59775 diff --git a/gcc/ipa-ref.c b/gcc/ipa-ref.c index b8c3d5116d55..6aa41e6cfb4e 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.