[PATCH] D125349: [Sema] Fix crash for C11 atomic in gnu++ mode
John McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 8 10:35:57 PDT 2022
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
More information about the cfe-commits
mailing list