<div dir="ltr">Yeah, I also tried it, but hit the same problem.  It means we're still emitting complete dtors for classes which have no virtual bases, and we shouldn't need them, so I'd hold off on this.  Maybe we just need to pass -mconstructor-aliases or something.<div>
<br></div><div>You can see the codes in the dtor mangling in MicrosoftMangle.  ?_D is the code for complete (aka vbase) dtor.</div><div><br></div><div><div>  switch (T) {</div><div>  // <operator-name> ::= ?1  # destructor</div>
<div>  case Dtor_Base: Out << "?1"; return;</div><div>  // <operator-name> ::= ?_D # vbase destructor</div><div>  case Dtor_Complete: Out << "?_D"; return;</div><div>  // <operator-name> ::= ?_G # scalar deleting destructor</div>
<div>  case Dtor_Deleting: Out << "?_G"; return;</div><div>  // <operator-name> ::= ?_E # vector deleting destructor</div><div>  // FIXME: Add a vector deleting dtor type.  It goes in the vtable, so we need</div>
<div>  // it.</div><div>  }</div></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Nov 5, 2013 at 5:15 PM, Rafael Espíndola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 5 November 2013 13:23, Reid Kleckner <<a href="mailto:rnk@google.com">rnk@google.com</a>> wrote:<br>

</div><div class="im">> Looks good, I'm fairly confident this will DTRT.<br>
><br>
> As a followup someone should remove the hack at the top of<br>
> GetAddrOfCXXDestructor.<br>
<br>
</div>Like the attached patch? Unfortunately this does cause some test<br>
failures. I have attached the before and after of<br>
microsoft-abi-structors.cpp, but I don't known microsoft's mangling,<br>
so I am not sure if it is a valid change or not.<br>
<br>
Cheers,<br>
Rafael<br>
</blockquote></div><br></div>