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

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

Reply via email to