[PATCH] D128745: [c++] implements DR692, DR1395 and tentatively DR1432, about partial ordering of variadic template partial specialization or function template

Yuanfang Chen via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 4 11:00:49 PDT 2022


ychen added a comment.

> There were multiple DRs implemented in this patch.
>
> DR692 was a fix against C++11
> DR1395 was a fix against C++17
> DR1432 is still open but was opened against C++11
>
> Which DRs do we wish to implement in what language modes?

There are regressions if DR1395 is not applied on top of DR692. So I'd consider all three fixes on C++11.

FYI, I don't see users reporting that this is very disruptive. So I think these DRs should be the compiler default.

I think the consensus is some flag is needed to put it back to legacy behavior just in case. Keying on `-fclang-abi-compat` is confusing. Keying on language versions works but is less conforming. My feeling is that it is rare that we have a situation like this, so I'm hesitant to come up with a general solution like a language compatibility flag. The past experience is that we could simply introduce a specific language feature flag like `-faligned-new`. How about adding a flag `-fcxx-dr692` / `-fno-cxx-dr692`, defaulted on? The naming convention could be used for similar purposes in the future.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D128745



More information about the cfe-commits mailing list