|
Ideally, this should compile to the same code (sans argument order),
but because of aliasing/ordering requirements, sometimes the compiler
needs to allocate a second copy of the struct on the stack, and memcpy
between the two. GCC often does a good job of avoiding that, but not
always. So do it ourselves :(
https://github.com/llvm/llvm-project/issues/34482#issuecomment-980988347
|