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

Reply via email to