------- Comment #2 from hjl dot tools at gmail dot com 2009-02-11 15:15 ------- This is caused by assign_parms in function.c:
/* Estimate stack alignment from parameter alignment. */ if (SUPPORTS_STACK_ALIGNMENT) { unsigned int align = FUNCTION_ARG_BOUNDARY (data.promoted_mode, data.passed_type); if (TYPE_ALIGN (data.nominal_type) > align) align = TYPE_ALIGN (data.passed_type); if (crtl->stack_alignment_estimated < align) { gcc_assert (!crtl->stack_realign_processed); crtl->stack_alignment_estimated = align; } } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39146