[Bug c/49016] always_inline causes references below the current stack pointer
merrill_707_1 at yahoo dot com
gcc-bugzilla@gcc.gnu.org
Mon May 16 23:35:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49016
--- Comment #3 from Lee Merrill <merrill_707_1 at yahoo dot com> 2011-05-16 22:51:33 UTC ---
A disassembly snippet to show the problem:
0000000000000000 <fcPostWrite>:
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
# Note that these statements reference memory below the
# current stack pointer. So any interrupt which occurs
# here will corrupt these variables.
4: 48 89 7d e8 mov %rdi,-0x18(%rbp)
8: 89 75 e4 mov %esi,-0x1c(%rbp)
b: 8b 45 e4 mov -0x1c(%rbp),%eax
e: 89 45 fc mov %eax,-0x4(%rbp)
11: 48 8b 45 e8 mov -0x18(%rbp),%rax
15: 48 89 45 f0 mov %rax,-0x10(%rbp)
19: 48 8b 55 f0 mov -0x10(%rbp),%rdx
1d: 8b 45 fc mov -0x4(%rbp),%eax
20: 89 02 mov %eax,(%rdx)
22: c9 leaveq
23: c3 retq
More information about the Gcc-bugs
mailing list