rjmccall added a comment.

Pinging this thread because it has more reviewers who probably have opinions 
about this.

https://reviews.llvm.org/D134507 is a patch that adds `-fclang-abi-compat` 
support around the breaking change here, which basically means that targets 
using old `-fclang-abi-compat` settings never get this change.  I've argued on 
that patch that that isn't the right way of resolving this issue.  Basically, 
the DR here is changing the language behavior in a way that you can imagine 
having ABI impact, but it's not primarily an ABI change, it's a language 
semantics change.  The ABI impact is purely that we potentially select a 
different overload in some cases, which can have downstream ODR impact.  I 
think the appropriate way to handle language semantics changes like this which 
potentially have compatibility impact is to condition them on language version. 
 Changing the target language standard is already broadly understood to have 
source/semantic compatibility impact, which is why we allow different target 
language standards to be specified in the first place.  This also makes it 
straightforward to document this potential break as a consequence of moving to 
`-std=c++23`, and it removes a potential rather bizarre portability issue where 
platforms that embrace stable ABIs are permanently stuck with a language 
dialect.


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