------- Comment #9 from hjl dot tools at gmail dot com 2010-07-15 16:05 ------- How about this patch?
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 4fd2aab..65e13a3 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -6594,8 +6594,8 @@ ix86_function_arg_boundary (enum machine_mode mode, tree t ype) align = PARM_BOUNDARY; } } - if (align > BIGGEST_ALIGNMENT) - align = BIGGEST_ALIGNMENT; + else if (!contains_aligned_value_p (type)) + align = PARM_BOUNDARY; return align; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44948