royjacobson added a comment.

In D127593#3597374 <https://reviews.llvm.org/D127593#3597374>, @sberg wrote:

> 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.)

I've done some more lookup, and I believe the current behavior is correct.
The reasoning is that the behavior in regards to deleted functions in 
`__has_trivial_assign` is pretty old and is documented here: 
https://github.com/llvm/llvm-project/issues/33063. As Richard writes there (and 
as documented in 
https://clang.llvm.org/docs/LanguageExtensions.html#type-trait-primitives) 
those type traits are deprecated exactly because they exhibit this weird 
behavior.

Is it possible to check how often PDFium uses `__has_trivial_assign`? Depending 
on how large this breakage is we might need to revert and proceed more 
carefully..


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