X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fcalls.c;h=ac8398271252ac6cf748b436865fec9b4fc2cbc5;hp=bbb9b769c490765fcedc1f0f2c018232ad76c8cd;hb=9a27561fb113a16c47844119231b5edfa6b13c01;hpb=28cdd02864a5ad8c155ff32c0d8d230eb83322f1 diff --git a/gcc/calls.c b/gcc/calls.c index bbb9b769c49..ac839827125 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -2109,7 +2109,14 @@ expand_call (tree exp, rtx target, int ignore) if (fndecl) { struct cgraph_rtl_info *i = cgraph_rtl_info (fndecl); - if (i && i->preferred_incoming_stack_boundary) + /* Without automatic stack alignment, we can't increase preferred + stack boundary. With automatic stack alignment, it is + unnecessary since unless we can guarantee that all callers will + align the outgoing stack properly, callee has to align its + stack anyway. */ + if (i + && i->preferred_incoming_stack_boundary + && i->preferred_incoming_stack_boundary < preferred_stack_boundary) preferred_stack_boundary = i->preferred_incoming_stack_boundary; }