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