------- Comment #4 from jojelino at gmail dot com 2010-09-11 20:59 ------- this causes ICE confirmed with gcc -O3 -msse2 -std=gnu99 reduced testcase
typedef unsigned char uint8_t; typedef struct foo2 { int offset[4]; uint8_t* ref[4]; } foo2; int foo(const foo2 *fooval) { uint8_t *source[4] = { fooval->ref[0], fooval->ref[1], fooval->ref[2] }; int strides[4] = { fooval->offset[0], fooval->offset[1], fooval->offset[2] }; for (int i = 0; i < 4; i++) { strides[i] = -strides[i]; source[i] -= strides[i]; } return source[0]; } int main() { foo2 fool; int ret = foo(&fool); return ret; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45633