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