On Mon, 27 Jun 2011, Jan Hubicka wrote:

> Hi,
> this patch fixes thinko in cgraph_address_taken_from_non_vtable_p that valks
> references in NODE instead of references of NODE.
> It fixes the testcase in http://sourceware.org/bugzilla/show_bug.cgi?id=12942
> in non-plugin LTO and Gold, but not with GNU LD that presently handle 
> resolution
> info incorrectly for comdats.
> 
> Dave, do you think you could fix the GNU LD issue?
> 
> Once fixed, I wonder if I should not add the testcase as
> lto/broken_comdat_in_gnu_ld.c or something similar like we have testcases for
> glibc/mpfr bugs?

I think you should add that now (given you have it).

Richard.

> Bootstrapped/regtested x86_64-linux, comitted.
> 
> Index: ChangeLog
> ===================================================================
> --- ChangeLog (revision 175554)
> +++ ChangeLog (working copy)
> @@ -1,3 +1,8 @@
> +2011-06-27  Jan Hubicka  <j...@suse.cz>
> +
> +     * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of 
> node
> +     instead of references in node.
> +
>  2011-06-27  Richard Henderson  <r...@redhat.com>
>  
>       * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
> Index: ipa.c
> ===================================================================
> --- ipa.c     (revision 175554)
> +++ ipa.c     (working copy)
> @@ -542,13 +542,13 @@ cgraph_address_taken_from_non_vtable_p (
>  {
>    int i;
>    struct ipa_ref *ref;
> -  for (i = 0; ipa_ref_list_reference_iterate (&node->ref_list, i, ref); i++)
> +  for (i = 0; ipa_ref_list_refering_iterate (&node->ref_list, i, ref); i++)
>      if (ref->use == IPA_REF_ADDR)
>        {
>       struct varpool_node *node;
> -     if (ref->refered_type == IPA_REF_CGRAPH)
> +     if (ref->refering_type == IPA_REF_CGRAPH)
>         return true;
> -     node = ipa_ref_varpool_node (ref);
> +     node = ipa_ref_refering_varpool_node (ref);
>       if (!DECL_VIRTUAL_P (node->decl))
>         return true;
>        }
> 
> 

-- 
Richard Guenther <rguent...@suse.de>
Novell / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer

Reply via email to