<div dir="ltr">Reverted in r272671.</div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 14, 2016 at 8:35 AM, Eric Fiselier <span dir="ltr"><<a href="mailto:eric@efcs.ca" target="_blank">eric@efcs.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thinking out loud: The Itanium spec specifies that the calling conventions for non-trivial types only occurs when both the copy constructor and destructor are trivial.<div><br></div><div>I have some upcoming changes to pair that depend on the copy constructor being implicitly generated, which means killing those constructors.</div><div>Perhaps we could find another way to make either the destructor or implicitly generated copy constructor non-trivial?</div><div><br></div><div>I wonder if giving pair a dummy base class with a non-trivial destructor could serve as an alternative solution?</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>/Eric</div><div><br></div><div><br></div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 14, 2016 at 8:25 AM, Eric Fiselier <span dir="ltr"><<a href="mailto:eric@efcs.ca" target="_blank">eric@efcs.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Well that's unfortunate :-( I'll revert it later today, and we can work on a solution from there.<div><br></div><div>I would strongly encourage you to submit FreeBSD specific patches upstream. It's very helpful to see who (if anybody) is using specific ABI options or seemingly dead conditional compilation branches.</div><span><font color="#888888"><div><br></div><div>/Eric</div></font></span><div><div><div><br></div><div><br></div><div><br></div><div><br><div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 14, 2016 at 4:02 AM, Dimitry Andric <span dir="ltr"><<a href="mailto:dimitry@andric.com" target="_blank">dimitry@andric.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>We still turn off, and have always turned off, the _LIBCPP_TRIVIAL_PAIR_COPY_CTOR option in FreeBSD, since we are supposed to be backwards compatible with previous versions of libc++ that we shipped; see <a href="https://svnweb.freebsd.org/base/head/contrib/libc++/include/__config?view=markup#l733" target="_blank">https://svnweb.freebsd.org/base/head/contrib/libc++/include/__config?view=markup#l733</a></div><div><br></div><div>If the option is completely removed, we will either have to supply two versions of libc++, or bolt on some sort of backwards compatibility versioned symbols. Alternatively, we can add a local hack to put back the non-trivial copy constructor, but that might lead to other headaches.</div><div><br></div><div>David, do you have any good ideas for this? I think your idea was to burn all backwards compatibility bridges, but we can't really do that for FreeBSD 11.0 at this point, so we would have to start backporting fixes from trunk libc++, instead of importing it wholesale. For FreeBSD 12.0 we could ship only the new libc++, and provide the older libc++ as a compatibility package.</div><div><br></div><div>-Dimitry</div><br><div><blockquote type="cite"><div><div><div>On 14 Jun 2016, at 03:44, Eric Fiselier via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:</div><br></div></div><div><div><div><div dir="ltr">I have removed this option from in the libc++ in r272613. I believe it has no clients.<div>If anybody uses this option please contact me.<br><div><br></div><div>This option was used to turn off std::pair's trivial copy constructor, instead selecting an older non-trivial implementation.<br><div><br></div><div>It was added in r194742, on November 14th 2013. At that time Apple platforms used this option to turn off pairs trivial constructor. Two weeks later, on November 26th 2013, the default value for Apple platforms was removed in r195796.</div></div><div><br></div><div>Defining `_LIBCPP_TRIVIAL_PAIR_COPY_CTOR` will now cause an explicit error informing the client that the option has been removed. I will remove this diagnostic after the 3.9 release.</div><div><br></div><div>/Eric</div><div><br></div><div><br></div></div></div></div></div>
_______________________________________________<br>cfe-dev mailing list<br><a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br></div></blockquote></div><br></div></blockquote></div><br></div></div></div></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>