https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85669
--- Comment #30 from Iain Sandoe <iains at gcc dot gnu.org> --- (In reply to Segher Boessenkool from comment #27) > The stack is always 16B-aligned on Darwin as far as I know. Cc:ing Iain, he > will know for sure (I cannot find the docs, &^%*&^$#*&%) I actually thought we'd been around this loop a couple of revs. ago (when there was a change made to the headers, and it had been confirmed to be OK). don't have a system booted at the moment .. and haven't (yet) had the details - but here: From "Mac_OS_X_ABI_Function_Calls.pdf" m32 calling convention Prologs and Epilogs The called function is responsible for allocating its own stack frame, making sure to preserve 16-byte alignment in the stack. This operation is accomplished by a section of code called the prolog, which the compiler places before the body of the subroutine. After the body of the subroutine, the compiler places an epilog to restore the processor to the state it was prior to the subroutine call. m64 calling convention Prologs and Epilogs The called function is responsible for allocating its own stack frame, making sure to preserve 16-byte alignment in the stack. This operation is accomplished by a section of code called the prolog, which the compiler places before the body of the subroutine. After the body of the subroutine, the compiler places an epilog to restore the processor to the state it was prior to the subroutine call.