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

> On 4 November 2013 14:37, Reid Kleckner <[email protected]> wrote:
> > 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.
>
> This only happens for inline destructors (they are the ones that are
> linkonce_odr) and they are only output once at the end of the file via
> EmitDeferred. Were you trying to avoid aliases in more cases maybe?
>

Why doesn't this apply to inline constructors?  They are linkonce_odr.

EmitDeferred has a fixpoint loop, though, so it could cause more calls to
the replaced alias to be emitted.

I feel like this needs some defense against some other part of CodeGen
mangling the name for the entity you are replacing and attempting to
GetOrCreate it from the module.
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to