ojhunt wrote:

> > Generally for linkonce_odr defs we convert one copy (the one identified by 
> > the linker as prevailing) to weak_odr so that it is kept, and the rest to 
> > available_externally so that they are dropped after inlining.
> > The case referenced in the earlier comment kicks in which should only 
> > happen in very limited situations: there is a single copy. I see in the 
> > linked bug that this is a shared library, so there is a single copy, but I 
> > would have thought that the earlier analysis in LTO that feeds into the 
> > IsExported callback would indicate this as exported based on the info we 
> > get from the linker. I'll need to look at what is happening there, I should 
> > have time for a quick look today.
> 
> @pcc pointed out a couple of existing tests that are adding unnamed_addr to 
> vtable symbols, which by the existing comment and my (non-linking expert) 
> reading of the itanium spec might be wrong (because it means there is more 
> than one symbol for a single vtable)?

Oh indeed all of the vtables are labeled as unused_addr - if that allows them 
to be duplicated that seems like it might be an error?

https://github.com/llvm/llvm-project/pull/197855
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to