This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/41036] New: SIGSEGV with register asm esp
- From: "sergey dot senozhatsky at mail dot by" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 11 Aug 2009 17:55:47 -0000
- Subject: [Bug c++/41036] New: SIGSEGV with register asm esp
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Hello,
Following code (written just for fun) leads to:
Program received signal SIGSEGV, Segmentation fault.
main () at main-general.cpp:95
95 printf("%d\n", x_reg);
BTW, there is warning when using ecx, eax, edx.
should there be any warning for esp?
gcc
svn://gcc.gnu.org/svn/gcc/branches/gcc-4_4-branch
Revision: 150651
x86 / cpu info
vendor_id : GenuineIntel
cpu family : 6
model : 15
Compile flags: -g3 -O2
---
volatile register int x_reg asm ("esp");
int ff_()
{
x_reg = rand();
return x_reg;
}
int main()
{
x_reg = ff_();
x_reg++;
printf("%d\n", x_reg);
return 1;
}
Dump of assembler code for function _Z3ff_v:
0x080489c0 <_Z3ff_v+0>: push %ebp
0x080489c1 <_Z3ff_v+1>: mov %esp,%ebp
0x080489c3 <_Z3ff_v+3>: sub $0x8,%esp
0x080489c6 <_Z3ff_v+6>: call 0x80487a4 <rand@plt>
0x080489cb <_Z3ff_v+11>: mov %eax,%esp
0x080489cd <_Z3ff_v+13>: mov %esp,%eax
0x080489cf <_Z3ff_v+15>: leave
0x080489d0 <_Z3ff_v+16>: ret
(gdb) disassemble main
Dump of assembler code for function main:
0x080489e0 <main+0>: push %ebp
0x080489e1 <main+1>: mov %esp,%ebp
0x080489e3 <main+3>: and $0xfffffff0,%esp
0x080489e6 <main+6>: sub $0x10,%esp
0x080489e9 <main+9>: call 0x80489c0 <_Z3ff_v>
0x080489ee <main+14>: lea 0x1(%eax),%esp
0x080489f1 <main+17>: mov %esp,0x4(%esp)
0x080489f5 <main+21>: movl $0x8048bd0,(%esp)
0x080489fc <main+28>: call 0x8048774 <printf@plt> <<
0x08048a01 <main+33>: mov $0x1,%eax
0x08048a06 <main+38>: leave
0x08048a07 <main+39>: ret
Sergey
--
Summary: SIGSEGV with register asm esp
Product: gcc
Version: 4.4.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sergey dot senozhatsky at mail dot by
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41036