https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111107
--- Comment #38 from LIU Hao <lh_mouse at 126 dot com> --- (In reply to Eric Botcazou from comment #37) > You may want to revert the previous change though. What's the difference between the `-mstackrealign` option and the `force_align_arg_pointer` attribute? I'm quite confused by `-mstackrealign`: It could mean to realign the stack either to the preferred alignment (of every function), or to the required alignment, or just to at least 16 bytes. Without the final patch, the preferred alignment is 16 bytes, but unless a local variable requires 16-byte alignment, no stack realignment actually happens; even when a local variable requires 8-byte alignment (comment #23), the stack is still not aligned to an 8-byte boundary.