cor3ntin added a comment. In D111400#3164249 <https://reviews.llvm.org/D111400#3164249>, @aaron.ballman wrote:
> In D111400#3088321 <https://reviews.llvm.org/D111400#3088321>, @aaron.ballman > wrote: > >> In D111400#3088133 <https://reviews.llvm.org/D111400#3088133>, >> @hubert.reinterpretcast wrote: >> >>> In D111400#3087877 <https://reviews.llvm.org/D111400#3087877>, >>> @aaron.ballman wrote: >>> >>>> So your concern is that allowing this patch to be used as an extension in >>>> older language modes may change the behavior of existing code? Or is your >>>> concern more broad than just this patch? >>> >>> The behaviour of Clang before this patch in older language modes is >>> inconsistent with the specification before P2242R3 (for the template case) >>> in such a way that it could appear that P2242R3 is already implemented for >>> the template case (but not following the usual convention for extensions >>> affecting SFINAE); however, the mechanism by which that occurs might be >>> something other than an implementation of P2242R3. >>> >>> My concern is that the status quo of the Clang implementation with respect >>> to this area is broken, which in turn makes it possible for this patch to >>> exacerbate the issue by building on top of the brokenness and then making a >>> fix more complicated. At the very least, this patch does not demonstrate >>> that the "extension" does not affect SFINAE. >>> >>> In other words, my concern is that this patch is necessarily incomplete >>> unless if the situation around the template case is resolved. >> >> Thank you for the explanation, that's helpful! I'm sympathetic to not >> wanting to build on top of an unstable foundation, but I'm also a bit >> worried that we're asking a lot of @cor3ntin in terms of this PR because it >> sounds like this is a general request to fix template instantiation before >> doing more constexpr work (because anything constexpr is generally >> SFINAE-able). I think we need to fix the template instantiation issues, but >> I'm also not certain we should gate constexpr work on those fixes. >> >> I'd definitely like to hear thoughts from @rsmith on the right way to >> proceed. > > Pinging @rsmith -- I'd like to unblock @cor3ntin. If the issue is regarding the support and extension warning in C++20 and older modes, it's something I can address by conserving the status quo in older versions. I did add them to try to be consistent with guidelines I have received in the past If the ask is a more involved modification of how clang does SFINAE in general, i don't think that i can take that on. Personally, I do not think going out of our ways to support something that will be broken once people update to c++23 is critical, as it does involve some fairly convoluted code, but i also understand the desire to be as conforming as possible. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D111400/new/ https://reviews.llvm.org/D111400 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits