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
