On Tue, 1 Aug 2023, Michael Matz via Gcc-patches wrote: > Only because cmpxchg is defined in terms of memcpy/memcmp. If it were > defined in terms of the == operator (obviously applied recursively > member-wise for structs) and simple-assignment that wouldn't be a problem.
It also wouldn't work for floating point, where I think clearly the atomic operations should consider positive and negative zero as different, and should consider different DFP quantum exponents for the same real number as different - but should also consider the same NaN (same payload, same choice of quiet / signaling) as being the same. -- Joseph S. Myers jos...@codesourcery.com