Quuxplusone added a comment.

In D104500#2864909 <https://reviews.llvm.org/D104500#2864909>, @mizvekov wrote:

> In D104500#2863368 <https://reviews.llvm.org/D104500#2863368>, @jyknight 
> wrote:
>
>> This commit seems to have broken libc++ in C++98 mode, as it appears to have 
>> depended upon the implicit-move extension.
>> The root cause appears to be that libc++ emulates unique_ptr in c++98 mode, 
>> and this emulation stopped working.
>
> It's not that hard, right now, to put that support back in.
> But with C++11 up to C++20 sharing the same code, this is a lot of burden to 
> have yet another implicit move mechanism just for C++98.

@mizvekov, I don't understand what you mean by "yet another" mechanism. This is 
just asking to restore Clang's C++98/03 extension (that supports move 
constructors even in C++03). It's asking to //remove// special-case code you 
added, right? Find the line where you're saying "oh but if it's C++03 then 
//don't// do the usual rvalue lookup," and remove that.

My naive guess is line 3459:

  if (getLangOpts().CPlusPlus11 && !getLangOpts().CPlusPlus2b &&
      NRInfo.isMoveEligible()) {

should maybe be just

  if (!getLangOpts().CPlusPlus2b && NRInfo.isMoveEligible()) {

Could you look into that?

> And I think libc++ is in the process of ditching support for C++98 
> completely, though I might be mistaken about the extent here.

Nope, untrue. I've been making some patches to ditch libc++'s 
`_LIBCPP_CXX03_LANG` macro, but I'm doing that precisely because the only 
compiler we support in C++03 mode is Clang, and on Clang we //can// actually 
use rvalue references and variadic templates and so on, even in C++03 mode. 
That is, this extension (that was broken by this patch) is actually //the only 
reason libc++ works in C++03 mode at all!// So it's important to preserve the 
extension. (And presumably there might be clients relying on the extension, 
besides just libc++.)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D104500/new/

https://reviews.llvm.org/D104500

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to