https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81693
--- Comment #27 from H.J. Lu <hjl.tools at gmail dot com> --- By definition of the "naked" attribute, the program is responsible to manage stack. Since simulated interrupt functions don't follow the normal software calling convention and there is no attempt made to accommodate it in the naked function, the outgoing stack is properly aligned to requirement of software calling convention. Since Darwin checks the incoming stack alignment, the failure is expected.