sberg added a comment. In D127593#3596883 <https://reviews.llvm.org/D127593#3596883>, @royjacobson wrote:
> In D127593#3596601 <https://reviews.llvm.org/D127593#3596601>, @sberg wrote: > >> Is it intended that a deleted copy assignment op as in `struct S { void >> operator =(S &) = delete; };` (though, somewhat oddly, not in `struct S { >> void operator =(S) = delete; };`) is now marked as trivial? >> >> I think that's the root cause why a build of PDFium with clang-cl against >> the MSVC standard library started to fail for me now, effectively >> complaining that `__is_trivially_assignable(std::pair<int,int> &, >> std::pair<int,int> const &)` is false (as expected) while >> `__has_trivial_assign(std::pair<int,int>)` is (unexpectedly) true. > > I don't see it on godbolt trunk: https://godbolt.org/z/KPfxWqnhd. You'd only see it when compiling with Clang against MSVC's `<utility>`, where `std::pair` has a deleted copy assignment op (something I approximated with the `struct S` above). https://godbolt.org/z/bbEqvosvP shows how the behavior changed in Clang trunk. (Interestingly, the behavior is different between MSVC and GCC, and Clang now changed from matching the MSVC behavior to matching the GCC one.) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D127593/new/ https://reviews.llvm.org/D127593 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits