[PATCH] PR gcc/84923 - gcc.dg/attr-weakref-1.c failed on aarch64

Richard Biener rguenther@suse.de
Thu May 17 08:46:00 GMT 2018


On Thu, 17 May 2018, Kyrill Tkachov wrote:

> Hi,
> 
> Given this is a midend change it's a good idea to CC some of the maintainers
> of that area.
> I've copied richi and Honza.

The patch is ok for trunk (it's actually mine...) and for the branch
after a while.

Thanks,
Richard.

> Thanks,
> Kyrill
> 
> On 17/05/18 05:35, vladimir.mezentsev@oracle.com wrote:
> > Ping.
> > 
> > -Vladimir
> > 
> > 
> > On 05/10/2018 11:30 PM, vladimir.mezentsev@oracle.com wrote:
> > > From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
> > >
> > > When weakref_targets is not empty a target cannot be removed from the weak
> > list.
> > > A small example is below when 'wv12' is removed from the weak list on
> > aarch64:
> > >   static vtype Wv12 __attribute__((weakref ("wv12")));
> > >   extern vtype wv12 __attribute__((weak));
> > >
> > > Bootstrapped on aarch64-unknown-linux-gnu including (c,c++ and go).
> > > Tested on aarch64-linux-gnu.
> > > No regression. The attr-weakref-1.c test passed.
> > >
> > > ChangeLog:
> > > 2018-05-10  Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
> > >
> > > PR gcc/84923
> > > * varasm.c (weak_finish): clean up weak_decls
> > > ---
> > >  gcc/varasm.c | 3 ++-
> > >  1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/gcc/varasm.c b/gcc/varasm.c
> > > index 85296b4..8cf6e1e 100644
> > > --- a/gcc/varasm.c
> > > +++ b/gcc/varasm.c
> > > @@ -5652,7 +5652,8 @@ weak_finish (void)
> > >        tree alias_decl = TREE_PURPOSE (t);
> > >        tree target = ultimate_transparent_alias_target (&TREE_VALUE (t));
> > >
> > > -      if (! TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (alias_decl)))
> > > +      if (! TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (alias_decl))
> > > +         || TREE_SYMBOL_REFERENCED (target))
> > >        /* Remove alias_decl from the weak list, but leave entries for
> > >           the target alone.  */
> > >        target = NULL_TREE;
> > 
> 
> 

-- 
Richard Biener <rguenther@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)



More information about the Gcc-patches mailing list