<div dir="ltr">I don't like calling arrangeCXXDtorDeclaration from ctor-related functions. It looks like a typo. In the past I've used 'structor' as the generic term for ctors and dtors. You can see it in the Itanium mangling code, but I don't think it's very widely used. Does that seem like a better nomenclature? Then we would probably have StructorType, etc.<div>
<br></div><div>I'm excited to finally have this functionality, though. :)</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Sep 4, 2014 at 11:20 AM, 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">I have rebased this patch on top of my refactoring patch since it<br>
makes it quiet a bit simpler. I have attached both.<br>
<br>
Because of some bugs in GCC there is a discussion going on<br>
<a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62306" target="_blank">https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62306</a> about the best way<br>
to handle the destructor comdat. The attached patch implements the<br>
suggestion of using a new comdat name.<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On 1 September 2014 23:03, Rafael EspĂ­ndola <<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>> wrote:<br>
> There are situations when clang knows that the C1 and C2 constructors<br>
> or the D2 and D2 destructors are identical. We already optimize some<br>
> of these cases, but cannot optimize it when the GlobalValue is<br>
> weak_odr.<br>
><br>
> The problem with weak_odr is that an old TU seeing the same code will<br>
> have a C1 and a C2 comdat with the corresponding symbols. We cannot<br>
> suddenly start putting the C2 symbol in the C1 comdat as we cannot<br>
> guarantee that the linker will not pick a .o with only C1 in it.<br>
><br>
> The solution implemented by GCC is to expand the ABI to have a comdat<br>
> whose name uses a C5/D5 suffix and always has both symbols. That is<br>
> what this patch implements.<br>
><br>
> We could also use C5/D5 for linkonce_odr, but it is probably better to<br>
> change one at a time.<br>
><br>
> Cheers,<br>
> Rafael<br>
</div></div><br>_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
<br></blockquote></div><br></div>