This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/26650] New: unaligned (SSE) stack access, smashing
- From: "tbptbp at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 12 Mar 2006 06:19:34 -0000
- Subject: [Bug c++/26650] New: unaligned (SSE) stack access, smashing
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
This bug is transient and sensible to code/structures re-arrangements and how
things get inlined. In the included testcases it shows up as unaligned stack
load/store but atm in the current app, i also have values being smashed on the
stack and no segfaults.
Shows up with g++ 4.1.0 and 4.2-20060225 on x86 (cygwin) and x86-64 (linux),
and in fact all 4.2.x i have tried.
With this script...
#!/usr/bin/perl
while(<>) {
chomp;
next if !/movaps/;
next if !/esp/;
next if !/(0x\w+)/;
next if substr($1, -1, 1) eq '0';
print "$_\n";
}
... and g++4.1.0 on cygwin...
/usr/local/gcc-4.1.0/bin/g++ -march=k8 -mfpmath=sse -msse3 -O2
-fomit-frame-pointer bogus1.ii -c -o tt1.o && objdump.exe -d --no-show-raw-insn
tt1.o |./check_alignment.pl
1664: movaps %xmm0,0x7c8(%esp)
2054: movaps %xmm0,0x318(%esp)
28cd: movaps %xmm0,0x1f8(%esp)
4579: movaps %xmm0,0x338(%esp)
513d: movaps %xmm0,0x328(%esp)
/usr/local/gcc-4.1.0/bin/g++ -march=k8 -mfpmath=sse -msse3 -fomit-frame-pointer
-Os bogus2.ii -c -o tt2.o && objdump.exe -d --no-show-raw-insn tt2.o
|./check_alignment.pl
274: movaps %xmm5,0x74(%esp)
281: movaps %xmm1,0x64(%esp)
2ac: movaps %xmm4,0x84(%esp)
2b8: movaps %xmm4,0x84(%esp)
2cf: movaps %xmm5,0x54(%esp)
2d8: movaps %xmm5,0x54(%esp)
2e9: movaps %xmm0,0x44(%esp)
2f1: movaps %xmm0,0x44(%esp)
3a3: movaps %xmm3,0x34(%esp)
3a8: movaps %xmm1,0x24(%esp)
426: movaps 0x24(%esp),%xmm7
475: movaps 0x34(%esp),%xmm4
4cf: movaps 0x64(%esp),%xmm0
851: movaps %xmm0,0x18(%esp)
859: movaps 0x18(%esp),%xmm2
865: movaps %xmm0,0x28(%esp)
879: movaps 0x18(%esp),%xmm0
903: movaps 0x18(%esp),%xmm0
[snipped 300 more]
Excuse those large testcases but i have no idea how to reproduce it and it only
happens in that rather large unit.
--
Summary: unaligned (SSE) stack access, smashing
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tbptbp at gmail dot com
GCC target triplet: x86, x86-64
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26650