------- Comment #13 from Joey dot ye at intel dot com 2008-05-05 07:22 ------- It is helpful. Root cause is that memory allocated by new is only aligned to 8 bytes under i386. In your case, object Environment is allocated by new and its constructor tried to use movdqa to initialize its members. Following small case shows the problem: /* Compile with option -m32 -msse2 Current behavior: runtime segment fault */ #include <stdio.h> #include <emmintrin.h>
struct A { public: __m128i m; void init() { m = _mm_setzero_si128(); } }; int main() { A * a = new A; printf("Address of A: %p\n", a); a->init(); delete a; return 0; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36054