http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60926
--- Comment #6 from gidici61 at gmail dot com --- I don't understand why the addition of "putchar(p1)" in g2() C code changes "subq $8, %rsp" to "subq $16 %rsp", while all the other assembler code remain unchanged. So, if the second ("subq $16 %rsp") makes rsp 16 byte aligned before "call g2", then the first ("subq $8, %rsp") must be wrong and vice-versa. Can you help me to understand what I'm missing? Thank you in advance.