aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBalaji V. Iyer <balaji.v.iyer@intel.com>2013-05-31 12:55:02 +0000
committerBalaji V. Iyer <bviyer@gcc.gnu.org>2013-05-31 05:55:02 -0700
commit17dc571e3fa272a16b88f002b7016f5676a142aa (patch)
tree8c2ae8f23d50359eb6abefa438fe5abc364f8e66
parent6ed17438b36389578af34515da906ab18422884d (diff)
downloadgcc-17dc571e3fa272a16b88f002b7016f5676a142aa.zip
gcc-17dc571e3fa272a16b88f002b7016f5676a142aa.tar.gz
gcc-17dc571e3fa272a16b88f002b7016f5676a142aa.tar.bz2
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
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/if_test.c154
2 files changed, 114 insertions, 46 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fbfbcf3..b8137c3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+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>
* gcc.dg/shrink-wrap-alloca.c: Use __builtin_alloca.
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/if_test.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/if_test.c
index b150b18..53ceeec 100644
--- a/gcc/testsuite/c-c++-common/cilk-plus/AN/if_test.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/if_test.c
@@ -1,6 +1,9 @@
/* { dg-do run } */
/* { dg-options "-fcilkplus" } */
+#if HAVE_IO
+#include <stdio.h>
+#endif
#include <stdlib.h>
int main2 (int argc, char **argv);
int main(int argc, char **argv)
@@ -23,8 +26,9 @@ int main(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 array2_check[10];
- int FourDArray[10][10][10][10];
+ int array2_check[10], array2d_check[10][10], array2d[10][10];
+ int FourDArray[10][10][10][10], array4[10][10][10][10];
+ int array4_check[10][10][10][10];
int ii = 0;
for (ii = 0; ii < 10; ii++)
@@ -71,10 +75,6 @@ int main2 (int argc, char **argv)
if (array2_check[ii] != array2[ii])
return 3;
-
-
-
-
x = atoi (argv[1])-10;
y = atoi (argv[1])/2;
z = (atoi (argv[1]))/5;
@@ -110,14 +110,16 @@ int main2 (int argc, char **argv)
if (array2_check[ii] != array2[ii])
return 4;
- for (ii = 0; ii < 10; ii++)
+ for (ii = 0; ii < 10; ii++) {
array2[ii] = 10;
+ array2_check[ii] = 10;
+ }
/* 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])
- array2[:] = 5;
+ if (array[atoi(argv[1])-10:atoi(argv[1])/2: atoi(argv[1])/5])
+ array2[atoi(argv[1])-10: atoi (argv[1])/2: atoi(argv[1])/5] = 5;
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);
ii +=atoi(argv[1])/5)
@@ -127,9 +129,13 @@ int main2 (int argc, char **argv)
array2_check[ii] = 10;
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;
-
+ }
for (ii = 0; ii < 10; ii++)
for (jj = 0; jj < 10; jj++)
@@ -137,29 +143,39 @@ int main2 (int argc, char **argv)
for (ii = 0; ii < 10; ii++)
- {
- array2[ii] = 10;
- array2_check[ii] = 10;
+ for (ii = 0; ii < 10; ii++) {
+ array2d[ii][jj] = 10;
+ array2d_check[ii][jj] = 10;
}
/* atoi(argv[1]) == 10, so it will convert all 10's to 5's */
if (TwodArray[:][:] != 10)
- array2[:] = 10;
+ array2d[:][:] = 10;
else
- array2[:] = 5;
+ array2d[:][:] = 5;
for (ii = 0; ii < 10; ii++) {
for (jj = 0; jj < 10; jj++) {
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++)
- {
- array2[ii] = 10;
- array2_check[ii] = 10;
- }
+ 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++)
+ {
+ array4[ii][jj][kk][ll] = 10;
+ array4_check[ii][jj][kk][ll] = 10;
+ }
for (ii = 0; ii < 10; ii++)
for (jj = 0; jj < 10; jj++)
@@ -169,26 +185,38 @@ int main2 (int argc, char **argv)
/* atoi(argv[1]) == 10, so it will convert all 10's to 5's */
if (FourDArray[:][:][:][:] != 10)
- array2[:] = 10;
+ array4[:][:][:][:] = 10;
else
- array2[:] = 5;
+ array4[:][:][:][:] = 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 (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++)
- {
- array2[ii] = 10;
- array2_check[ii] = 10;
- }
+ 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++)
+ {
+ array4[ii][jj][kk][ll] = 10;
+ array4_check[ii][jj][kk][ll] = 10;
+ }
for (ii = 0; ii < 10; ii++)
for (jj = 0; jj < 10; jj++)
@@ -197,54 +225,88 @@ int main2 (int argc, char **argv)
FourDArray[ii][jj][kk][ll] = atoi(argv[1]);
/* 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)
- array2[:] = 10;
+ if (FourDArray[0:10:1][0:5:2][9:10:-1][0:5:2] != 10)
+ array4[0:10:1][0:5:2][9:10:-1][0:5:2] = 10;
else
- array2[:] = 5;
+ array4[0:10:1][0:5:2][9:10:-1][0:5:2] = 5;
for (ii = 0; ii < 10; ii++) {
for (jj = 0; jj < 10; jj += 2) {
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)
- array2_check[ii] = 10;
+ array4_check[ii][jj][kk][ll] = 10;
else
- array2_check[ii] = 5;
+ array4_check[ii][jj][kk][ll] = 5;
}
}
}
}
for (ii = 0; ii < 10; ii++)
- {
- array2[ii] = 10;
- array2_check[ii] = 10;
- }
-
+ 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 8;
+ }
+
for (ii = 0; ii < 10; ii++)
for (jj = 0; jj < 10; jj++)
for (kk = 0; kk < 10; kk++)
for (ll = 0; ll < 10; ll++)
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 */
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)
- array2[:] = 10;
+ array4[0:10:1][0:5:2][9:10:-1][x:y:z] = 10;
else
- array2[:] = 5;
+ array4[0:10][0:5:2][9:10:-1][x:y:z] = 5;
for (ii = 0; ii < 10; ii++) {
for (jj = 0; jj < 10; jj += 2) {
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)
- array2_check[ii] = 10;
+ array4_check[ii][jj][kk][ll] = 10;
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;
}