https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87370
--- Comment #10 from trashyankes at wp dot pl --- (In reply to H.J. Lu from comment #9) > Fixed for GCC 9, GCC 8.3 and GCC 7.4. One question, I look on test case and see: ``` f1(): xor eax, eax xor edx, edx ret f2(): push rbp xor eax, eax xor edx, edx mov rbp, rsp and rsp, -64 sub rsp, 8 leave ret f3(): xor eax, eax xor edx, edx ret ``` Why `f2` have `push` there? Isn't this co kind of stack alignment? but for what point is it there? Clang do not have that.