GCC generates an XMM instruction with a memory operand not 16-byte aligned as it should be (i think), this generates a segmentation fault when run.
Input file: (test.c) --------------------------------------------- int iarr[64]; int iint = 0; int main() { int i; for(i=0;i<64;i++) { iarr[i] = -2; } return 0; } --------------------------------------------- Output of gcc -v: Using built-in specs. Target: i686-pc-cygwin Configured with: ../source-4.3.1/configure --prefix=/usr/src/gcc/prefix-4.3.1 --enable-languages=c,c++ --disable-nls --without-included-gettext --enable-version-specific-runtime-libs --enable-threads=posix --disable-win32-registry Thread model: posix gcc version 4.3.1 (GCC) Command used to compile: /usr/src/gcc/prefix-4.3.1/bin/gcc test.c -o test.exe -march=core2 -O3 CPU: Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz Offending instruction: 'movdqa %xmm0,0x403024' -- Summary: Invalid XMM instructions generated with -O3 Product: gcc Version: 4.3.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: simon dot sasburg at gmail dot com GCC build triplet: i686-pc-cygwin GCC host triplet: i686-pc-cygwin GCC target triplet: i686-pc-cygwin http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216