Fix cgraph_address_taken_from_non_vtable_p

Richard Guenther rguenther@suse.de
Mon Jun 27 22:18:00 GMT 2011


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  <jh@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  <rth@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 <rguenther@suse.de>
Novell / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer


More information about the Gcc-patches mailing list