https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71161
--- Comment #12 from Richard Biener <rguenth at gcc dot gnu.org> --- I don't see anything wrong btw. the following contains all esp modifications and indirect calls. 00115d40 <dl_iterate_phdr>: 115d40: 55 push %ebp 115d41: 89 e5 mov %esp,%ebp 115d43: 57 push %edi 115d44: 56 push %esi 115d45: 53 push %ebx 115d46: e8 14 0d f0 ff call 16a5f <__i686.get_pc_thunk.bx> 115d4b: 81 c3 b5 92 05 00 add $0x592b5,%ebx 115d51: 83 ec 50 sub $0x50,%esp 115d54: 8b 93 c8 fe ff ff mov -0x138(%ebx),%edx 115d5a: 8d 82 c4 04 00 00 lea 0x4c4(%edx),%eax 115d60: 89 04 24 mov %eax,(%esp) 115d63: ff 92 e0 07 00 00 call *0x7e0(%edx) ... 115e2b: c7 44 24 04 28 00 00 movl $0x28,0x4(%esp) 115e32: 00 115e33: 89 3c 24 mov %edi,(%esp) 115e36: 89 4c 24 08 mov %ecx,0x8(%esp) 115e3a: ff 55 08 call *0x8(%ebp) ... 115ee8: 89 04 24 mov %eax,(%esp) 115eeb: ff 92 e4 07 00 00 call *0x7e4(%edx) 115ef1: 8b 45 b4 mov -0x4c(%ebp),%eax 115ef4: 83 c4 50 add $0x50,%esp 115ef7: 5b pop %ebx 115ef8: 5e pop %esi 115ef9: 5f pop %edi 115efa: 5d pop %ebp 115efb: c3 ret so unless the locking stuff (I'm looking at head sources, the above is old assembly) misaligns the stack the above is fine.