diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8432ec6cdfe2fec3c19b87b152dc70aa2f78b31f..57e8d9c8e6798b7e4e73981d82e206574e5a9ab2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-01-14 Mark Mitchell <mark@codesourcery.com> + + * gcc.dg/vect/vect-105.c: Prevent compiler from hoisting abort + out of loop. + 2009-01-14 Richard Guenther <rguenther@suse.de> PR tree-optimization/38826 diff --git a/gcc/testsuite/gcc.dg/vect/vect-105.c b/gcc/testsuite/gcc.dg/vect/vect-105.c index eb21b160cffcb57ad562668623609ed78e6599f5..bbf42af897ffa24319972f39e2b94c76d8ae06c3 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-105.c +++ b/gcc/testsuite/gcc.dg/vect/vect-105.c @@ -16,6 +16,8 @@ static int a[N][N] = {{1,2,3,11},{4,5,6,12},{7,8,9,13},{34,45,67,83}}; static int b[N][N] = {{17,28,15,23},{0,2,3,24},{4,31,82,25},{29,31,432,256}}; static int c[N][N] = {{1,2,3,11},{4,9,13,34},{45,67,83,13},{34,45,67,83}}; +volatile int y; + __attribute__ ((noinline)) int main1 (int x) { int i,j; @@ -28,7 +30,9 @@ int main1 (int x) { { p->a[i][j] = a[i][j]; p->b[i][j] = b[i][j]; - if (x == 135) + /* Because Y is volatile, the compiler cannot move this check out + of the loop. */ + if (y) abort (); /* to avoid vectorization */ } }