Commit 17dc571e by Balaji V. Iyer Committed by Balaji V. Iyer

re PR c/57452 (FAIL: c-c++-common/cilk-plus/AN/if_test.c)

2013-05-31  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	PR c/57452
	* c-c++-common/cilk-plus/AN/if_test.c: Fixed out of bounds issue in
	test-case.

From-SVN: r199537
parent 6ed17438
2013-05-31 Balaji V. Iyer <balaji.v.iyer@intel.com>
PR c/57452
* c-c++-common/cilk-plus/AN/if_test.c: Fixed out of bounds issue in
test-case.
2013-05-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2013-05-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* gcc.dg/shrink-wrap-alloca.c: Use __builtin_alloca. * gcc.dg/shrink-wrap-alloca.c: Use __builtin_alloca.
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-fcilkplus" } */ /* { dg-options "-fcilkplus" } */
#if HAVE_IO
#include <stdio.h>
#endif
#include <stdlib.h> #include <stdlib.h>
int main2 (int argc, char **argv); int main2 (int argc, char **argv);
int main(int argc, char **argv) int main(int argc, char **argv)
...@@ -23,8 +26,9 @@ int main(int argc, char **argv) ...@@ -23,8 +26,9 @@ int main(int argc, char **argv)
int main2 (int argc, char **argv) int main2 (int argc, char **argv)
{ {
int x = 3, y, z, array[10], array2[10], TwodArray[10][10], jj,kk,ll ; int x = 3, y, z, array[10], array2[10], TwodArray[10][10], jj,kk,ll ;
int array2_check[10]; int array2_check[10], array2d_check[10][10], array2d[10][10];
int FourDArray[10][10][10][10]; int FourDArray[10][10][10][10], array4[10][10][10][10];
int array4_check[10][10][10][10];
int ii = 0; int ii = 0;
for (ii = 0; ii < 10; ii++) for (ii = 0; ii < 10; ii++)
...@@ -71,10 +75,6 @@ int main2 (int argc, char **argv) ...@@ -71,10 +75,6 @@ int main2 (int argc, char **argv)
if (array2_check[ii] != array2[ii]) if (array2_check[ii] != array2[ii])
return 3; return 3;
x = atoi (argv[1])-10; x = atoi (argv[1])-10;
y = atoi (argv[1])/2; y = atoi (argv[1])/2;
z = (atoi (argv[1]))/5; z = (atoi (argv[1]))/5;
...@@ -110,14 +110,16 @@ int main2 (int argc, char **argv) ...@@ -110,14 +110,16 @@ int main2 (int argc, char **argv)
if (array2_check[ii] != array2[ii]) if (array2_check[ii] != array2[ii])
return 4; return 4;
for (ii = 0; ii < 10; ii++) for (ii = 0; ii < 10; ii++) {
array2[ii] = 10; array2[ii] = 10;
array2_check[ii] = 10;
}
/* This if loop will change all the 10's to 5's */ /* This if loop will change all the 10's to 5's */
if (array[atoi(argv[1])-10:atoi(argv[1]): atoi(argv[1])/5]) if (array[atoi(argv[1])-10:atoi(argv[1])/2: atoi(argv[1])/5])
array2[:] = 5; array2[atoi(argv[1])-10: atoi (argv[1])/2: atoi(argv[1])/5] = 5;
else else
array2[:] = 10; array2[atoi(argv[1])-10: atoi (argv[1])/2: atoi(argv[1])/5] = 10;
for (ii = atoi(argv[1])-10; ii < atoi(argv[1]) + (atoi (argv[1])-10); for (ii = atoi(argv[1])-10; ii < atoi(argv[1]) + (atoi (argv[1])-10);
ii +=atoi(argv[1])/5) ii +=atoi(argv[1])/5)
...@@ -127,9 +129,13 @@ int main2 (int argc, char **argv) ...@@ -127,9 +129,13 @@ int main2 (int argc, char **argv)
array2_check[ii] = 10; array2_check[ii] = 10;
for (ii = 0; ii < 10; ii++) for (ii = 0; ii < 10; ii++)
if (array2_check[ii] != array2[ii]) if (array2_check[ii] != array2[ii]) {
#if HAVE_IO
printf("array2[%2d] = %2d array2_check[%2d] = %2d\n", ii, array2[ii],
ii, array2_check[ii]);
#endif
return 5; return 5;
}
for (ii = 0; ii < 10; ii++) for (ii = 0; ii < 10; ii++)
for (jj = 0; jj < 10; jj++) for (jj = 0; jj < 10; jj++)
...@@ -137,28 +143,38 @@ int main2 (int argc, char **argv) ...@@ -137,28 +143,38 @@ int main2 (int argc, char **argv)
for (ii = 0; ii < 10; ii++) for (ii = 0; ii < 10; ii++)
{ for (ii = 0; ii < 10; ii++) {
array2[ii] = 10; array2d[ii][jj] = 10;
array2_check[ii] = 10; array2d_check[ii][jj] = 10;
} }
/* atoi(argv[1]) == 10, so it will convert all 10's to 5's */ /* atoi(argv[1]) == 10, so it will convert all 10's to 5's */
if (TwodArray[:][:] != 10) if (TwodArray[:][:] != 10)
array2[:] = 10; array2d[:][:] = 10;
else else
array2[:] = 5; array2d[:][:] = 5;
for (ii = 0; ii < 10; ii++) { for (ii = 0; ii < 10; ii++) {
for (jj = 0; jj < 10; jj++) { for (jj = 0; jj < 10; jj++) {
if (TwodArray[ii][jj] != 10) if (TwodArray[ii][jj] != 10)
array2_check[ii] = 10; array2d_check[ii][jj] = 10;
else
array2d_check[ii][jj] = 5;
} }
} }
for (ii = 0; ii < 10; ii++) for (ii = 0; ii < 10; ii++)
for (jj = 0; jj < 10; jj++)
if (array2d[ii][jj] != array2d_check[ii][jj])
return 6;
for (ii = 0; ii < 10; ii++)
for (jj = 0; jj < 10; jj++)
for (kk = 0; kk < 10; kk++)
for (ll = 0; ll < 10; ll++)
{ {
array2[ii] = 10; array4[ii][jj][kk][ll] = 10;
array2_check[ii] = 10; array4_check[ii][jj][kk][ll] = 10;
} }
for (ii = 0; ii < 10; ii++) for (ii = 0; ii < 10; ii++)
...@@ -169,25 +185,37 @@ int main2 (int argc, char **argv) ...@@ -169,25 +185,37 @@ int main2 (int argc, char **argv)
/* atoi(argv[1]) == 10, so it will convert all 10's to 5's */ /* atoi(argv[1]) == 10, so it will convert all 10's to 5's */
if (FourDArray[:][:][:][:] != 10) if (FourDArray[:][:][:][:] != 10)
array2[:] = 10; array4[:][:][:][:] = 10;
else else
array2[:] = 5; array4[:][:][:][:] = 5;
for (ii = 0; ii < 10; ii++) { for (ii = 0; ii < 10; ii++) {
for (jj = 0; jj < 10; jj++) { for (jj = 0; jj < 10; jj++) {
for (kk = 0; kk < 10; kk++) { for (kk = 0; kk < 10; kk++) {
for (ll = 0; ll < 10; ll++) { for (ll = 0; ll < 10; ll++) {
if (FourDArray[ii][jj][kk][ll] != 10) if (FourDArray[ii][jj][kk][ll] != 10)
array2_check[ii] = 10; array4_check[ii][jj][kk][ll] = 10;
else
array4_check[ii][jj][kk][ll] = 5;
} }
} }
} }
} }
for (ii = 0; ii < 10; ii++) for (ii = 0; ii < 10; ii++)
for (jj = 0; jj < 10; jj++)
for (kk = 0; kk < 10; kk++)
for (ll = 0; ll < 10; ll++)
if (array4_check[ii][jj][kk][ll] != array4[ii][jj][kk][ll])
return 7;
for (ii = 0; ii < 10; ii++)
for (jj = 0; jj < 10; jj++)
for (kk = 0; kk < 10; kk++)
for (ll = 0; ll < 10; ll++)
{ {
array2[ii] = 10; array4[ii][jj][kk][ll] = 10;
array2_check[ii] = 10; array4_check[ii][jj][kk][ll] = 10;
} }
for (ii = 0; ii < 10; ii++) for (ii = 0; ii < 10; ii++)
...@@ -197,28 +225,36 @@ int main2 (int argc, char **argv) ...@@ -197,28 +225,36 @@ int main2 (int argc, char **argv)
FourDArray[ii][jj][kk][ll] = atoi(argv[1]); FourDArray[ii][jj][kk][ll] = atoi(argv[1]);
/* atoi(argv[1]) == 10, so it will convert all 10's to 5's */ /* atoi(argv[1]) == 10, so it will convert all 10's to 5's */
if (FourDArray[0:10:1][0:5:2][9:10:-1][x:y:z] != 10) if (FourDArray[0:10:1][0:5:2][9:10:-1][0:5:2] != 10)
array2[:] = 10; array4[0:10:1][0:5:2][9:10:-1][0:5:2] = 10;
else else
array2[:] = 5; array4[0:10:1][0:5:2][9:10:-1][0:5:2] = 5;
for (ii = 0; ii < 10; ii++) { for (ii = 0; ii < 10; ii++) {
for (jj = 0; jj < 10; jj += 2) { for (jj = 0; jj < 10; jj += 2) {
for (kk = 9; kk >= 0; kk--) { for (kk = 9; kk >= 0; kk--) {
for (ll = x; ll < 10; ll = ll += z) { for (ll = 0; ll < 10; ll += 2) {
if (FourDArray[ii][jj][kk][ll] != 10) if (FourDArray[ii][jj][kk][ll] != 10)
array2_check[ii] = 10; array4_check[ii][jj][kk][ll] = 10;
else else
array2_check[ii] = 5; array4_check[ii][jj][kk][ll] = 5;
} }
} }
} }
} }
for (ii = 0; ii < 10; ii++) for (ii = 0; ii < 10; ii++)
{ for (jj = 0; jj < 10; jj++)
array2[ii] = 10; for (kk = 0; kk < 10; kk++)
array2_check[ii] = 10; for (ll = 0; ll < 10; ll++)
if (array4_check[ii][jj][kk][ll] != array4[ii][jj][kk][ll]) {
#if HAVE_IO
printf("array4_check[%d][%d][%d][%d] = %d\n",ii, jj, kk, ll,
array4_check[ii][jj][kk][ll]);
printf("array4[%d][%d][%d][%d] = %d\n",ii, jj, kk, ll,
array4[ii][jj][kk][ll]);
#endif
return 8;
} }
for (ii = 0; ii < 10; ii++) for (ii = 0; ii < 10; ii++)
...@@ -227,24 +263,50 @@ int main2 (int argc, char **argv) ...@@ -227,24 +263,50 @@ int main2 (int argc, char **argv)
for (ll = 0; ll < 10; ll++) for (ll = 0; ll < 10; ll++)
FourDArray[ii][jj][kk][ll] = atoi(argv[1]); FourDArray[ii][jj][kk][ll] = atoi(argv[1]);
for (ii = 0; ii < 10; ii++)
for (jj = 0; jj < 10; jj++)
for (kk = 0; kk < 10; kk++)
for (ll = 0; ll < 10; ll++)
{
array4[ii][jj][kk][ll] = 10;
array4_check[ii][jj][kk][ll] = 10;
}
/* atoi(argv[1]) == 10, so it will convert all 10's to 5's */ /* atoi(argv[1]) == 10, so it will convert all 10's to 5's */
if (FourDArray[0:10:1][0:5:2][9:10:-1][x:y:z] + if (FourDArray[0:10:1][0:5:2][9:10:-1][x:y:z] +
FourDArray[0:10:1][0:5:2][9:-10:1][x:y:z] != 20) FourDArray[0:10:1][0:5:2][9:-10:1][x:y:z] != 20)
array2[:] = 10; array4[0:10:1][0:5:2][9:10:-1][x:y:z] = 10;
else else
array2[:] = 5; array4[0:10][0:5:2][9:10:-1][x:y:z] = 5;
for (ii = 0; ii < 10; ii++) { for (ii = 0; ii < 10; ii++) {
for (jj = 0; jj < 10; jj += 2) { for (jj = 0; jj < 10; jj += 2) {
for (kk = 9; kk >= 0; kk--) { for (kk = 9; kk >= 0; kk--) {
for (ll = x; ll < 10; ll = ll += z) { for (ll = 0; ll < 10; ll += 2) {
if (FourDArray[ii][jj][kk][ll] != 10) if (FourDArray[ii][jj][kk][ll] != 10)
array2_check[ii] = 10; array4_check[ii][jj][kk][ll] = 10;
else else
array2_check[ii] = 5; array4_check[ii][jj][kk][ll] = 5;
} }
} }
} }
} }
for (ii = 0; ii < 10; ii++)
for (jj = 0; jj < 10; jj++)
for (kk = 0; kk < 10; kk++)
for (ll = 0; ll < 10; ll++)
if (array4_check[ii][jj][kk][ll] != array4[ii][jj][kk][ll]) {
#if HAVE_IO
printf("array4_check[%d][%d][%d][%d] = %d\n",ii, jj, kk, ll,
array4_check[ii][jj][kk][ll]);
printf("array4[%d][%d][%d][%d] = %d\n",ii, jj, kk, ll,
array4[ii][jj][kk][ll]);
#endif
return 9;
}
return 0; return 0;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment