使用gcc的 -O3 或 -O2 选项时,我发现了一种非常奇怪的行为。
当我的程序在调试模式( -g )下运行时,它很好;但是当我打开 -O3 或 -O2 时,它会引发细分问题。
当运行带有 SSE2 宏的函数时,会发生分段;像
_m128i polynomial = _mm_set1_epi8(0x1d)
这只是代码的一部分。
我想我已经消除了16字节地址对齐的情况。它是如此有线,以至于-g模式和 -O2 或 -O3 模式的行为方式不同。
实际上,我不确定该错误是否与SSE2有关。
我正在使用 gcc 4.4.3 。
您遇到过同样的问题吗?
或者你能否就如何处理它给我一些建议?
答案 0 :(得分:2)