rjmccall added a comment.

This seems like the right idea to me, yeah.  It doesn't look like the patch 
handles `volatile _Atomic` correctly, though.

I know we do a lot of candidate prefiltering, and that that can be difficult 
because of uesr-defined conversions.  How do those things interact with 
qualifiers?  Like, I notice the existing code is adding both `(T &, T)` and 
`(volatile T &, T)` when the LHS is `volatile`; is there a reason that's 
necessary?  Because we can't actually convert the LHS to remove those 
qualifiers, and adding combinatoric candidates could get very expensive if we 
start doing it for arbitrary extended qualifiers, which it feels like we ought 
to.  (You could certainly have e.g. a `volatile _Atomic __myaddrspace` 
l-value.)  If this is only necessary when the LHS has a user-defined 
conversion, then maybe we could at least not do it in the normal case just 
because the RHS is an overloaded type.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D125349

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

Reply via email to