How do you deal with the case where not all references to the aliased
entity have been generated yet?  For example:

Emit call to derived ctor
Emit derived ctor
RAUW derived ctor with base ctor
Emit call to derived ctor, create new declaration for it

I attempted this before, and this is the issue I hit.


On Mon, Nov 4, 2013 at 2:21 PM, Rafael Espíndola <[email protected]
> wrote:

> On 4 November 2013 12:21, Richard Smith <[email protected]> wrote:
> > I'm a bit confused by this. We seem to stop emitting some weak_odr
> symbols
> > with this patch. Are those symbols not required by the ABI? (If not, why
> > were they weak_odr and not linkonce_odr?)
>
> They were weak_odr aliases to linkonce_odr symbols. They were there as
> a workaround for us not having comdat support directly in LLVM IR.
> Given how comdat work, every translation unit has to make the same
> decisions as to what gets put in a comdat. Since we implement weak
> symbols with comdats, the alias to them cannot be linkonce, otherwise
> one TU could have both symbols and another just one.
>
> So a way to look at this patch is that it avoid the need for that
> workaround by not emitting aliases in that case.
>
> Cheers,
> Rafael
> _______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to