http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49091
--- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> 2011-06-04 13:56:00 UTC --- OK, the problem is K&R style definition: int ssetup(in, out, port) int *in, *out; int *port; { struct hostent *hp; struct servent *sp; struct sockaddr_in myaddr_in; struct sockaddr_in peeraddr_in; later used as: int server_sock_setup(in, out) int *in, *out; { return(ssetup(in, out)); } that is bug, too. I assumed that here we won't inline because of our type check mismatch. edge->call_stmt_cannot_inline_p is 0. This is because gimple_check_call_args actually allows decl to have more arguments than caller. Well, will fortify this at ipa-analysis side. Honza