https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82028
LIU Hao <lh_mouse at 126 dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lh_mouse at 126 dot com --- Comment #2 from LIU Hao <lh_mouse at 126 dot com> --- As per <https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention?view=msvc-170#parameter-passing> > Structs and unions of size 8, 16, 32, or 64 bits, and __m64 types, are > passed as if they were integers of the same size. Structs or unions of > other sizes are passed as a pointer to memory allocated by the caller. GCC behavior seems incorrect.