rsmith added a comment.

In D72897#1825791 <https://reviews.llvm.org/D72897#1825791>, @rjmccall wrote:

> I know that Sema used to have a lot of issues with implicitly declaring 
> special members, but I also know that that was bound up with how we tracked 
> special state for the class, and that code has changed a lot.   If you feel 
> that that's an unlikely problem now, and you're comfortable with potentially 
> having to generate implicit declarations of special members in different 
> orders to satisfy different ABIs, I can accept this approach.


I'm not particularly overjoyed by having an ABI decision determined by the 
order in which Sema chooses to implicitly declare these members. I think it's 
unlikely to have stability problems (we explicitly force declaration of virtual 
implicit members at the end of the class before they can have been lazily 
declared), but avoiding a reliance on Sema's behavior would be nice. It'd be 
hard to avoid relying on `Sema` getting the order of implicit `operator==` 
functions right, though, as I don't think we want vtable layout to be 
responsible for figuring out the correspondence between implicit `operator==` 
functions and defaulted `operator<=>` functions. Please take a look at this 
alternative approach and see what you think.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D72897



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

Reply via email to