https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111107
--- Comment #4 from Zebediah Figura <zfigura at codeweavers dot com> --- (In reply to Andrew Pinski from comment #3) > https://inbox.sourceware.org/gcc-patches/5969976.Bvae8NF9fS@polaris/ Again, I'm not sure what you're trying to communicate here. I'm aware that -mstackrealign exists (and its attribute equivalent). We *do* use that in Wine. Here is, again, what I am trying to communicate: Currently i686-w64-mingw32-gcc effectly assumes 4-byte stack alignment in some places (when -msse2 is used), and 16-byte alignment in others (when __attribute__((aligned)) is used). I am trying to request that it pick one or the other and stick with it. Now, personally, I think that assuming 4-byte stack alignment makes more *sense*. Otherwise *every* API function needs that extra alignment, which is wasteful when comparatively little code actually uses types aligned to 8 or more bytes. (It obviously makes more sense if you can get the whole API to agree on 16-bytes; then you don't have to manually align anything). But if there's a clear consensus that gcc should assume 16 bytes, and that it's Wine's responsibility to set -mstackrealign, or -mincoming-stack-boundary=2, or something, fine, but I'd like GCC to be consistent about that policy. Otherwise it looks like this behaviour is a bug. That's why I reported this as a bug.