diff options
author | Caroline Tice <cmtice@chromium.org> | 2013-06-21 12:05:49 -0700 |
---|---|---|
committer | Caroline Tice <cmtice@chromium.org> | 2013-06-21 12:05:49 -0700 |
commit | 9c1705845241cdea5cf61574218edef282901fbd (patch) | |
tree | 021da661f8a821bc7eea277521fa13f2043879a0 /gcc/testsuite/c-c++-common/cilk-plus/AN | |
parent | 9bdedf4df4166718fa0a44811c643214c6880471 (diff) | |
parent | 8a46ed36b0449c870d0a938c1010ad610ebcf4f7 (diff) | |
download | gcc-9c1705845241cdea5cf61574218edef282901fbd.tar.gz |
Merge branch 'master' into vtv
Conflicts:
gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/decl2.c
gcc/varasm.c
libstdc++-v3/ChangeLog
Diffstat (limited to 'gcc/testsuite/c-c++-common/cilk-plus/AN')
35 files changed, 330 insertions, 213 deletions
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/array_test1.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/array_test1.c index bdd271a7730..e4f1ea8a73a 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/array_test1.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/array_test1.c @@ -3,23 +3,17 @@ #include <stdlib.h> -int main2 (int argc, char **argv); +int main2 (char **argv); -int main(int argc, char **argv) +int main(void) { - int x = 0; - if (argc == 1) - { - const char *array[] = {"a.out", "5"}; - x = main2 (2, (char **)array); - } - else - x = main2 (argc, argv); - + int x = 0; + const char *array[] = {"a.out", "5"}; + x = main2 ((char **)array); return x; } -int main2 (int argc, char **argv) +int main2 (char **argv) { int array[10], ii = 0, x = 2, z= 0 , y = 0 ; for (ii = 0; ii < 10; ii++) diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/array_test2.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/array_test2.c index bd7a4ad2b62..60f2de2834a 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/array_test2.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/array_test2.c @@ -2,23 +2,17 @@ /* { dg-options "-fcilkplus" } */ #include <stdlib.h> -int main2(int argc, char **argv); -int main(int argc, char **argv) +int main2 (char **argv); +int main(void) { - int x = 0; - if (argc == 1) - { - const char *array[] = {"a.out", "5"}; - x = main2 (2, (char **)array); - } - else - x = main2 (argc, argv); - + int x = 0; + const char *array[] = {"a.out", "5"}; + x = main2 ((char **)array); return x; } -int main2(int argc, char **argv) +int main2(char **argv) { int array[10], array2[10], ii = 0, x = 2, z= 0 , y = 0 ; diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/array_test_ND.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/array_test_ND.c index 1431c22b261..e89bbab268b 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/array_test_ND.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/array_test_ND.c @@ -2,28 +2,21 @@ /* { dg-options "-fcilkplus" } */ #include <stdlib.h> -int main2(int argc, char **argv); -int main(int argc, char **argv) +int main2(char **argv); +int main(void) { - int x = 0; - if (argc == 1) - { - const char *array[] = {"a.out", "10", "15"}; - x = main2 (3, (char **)array); - } - else if (argc == 3) - x = main2 (argc, argv); - else - return 1; - + int x = 0; + const char *array[] = {"a.out", "10", "15"}; + x = main2 ((char **)array); return x; } -int main2(int argc, char **argv) +int main2(char **argv) { int array[10][15], ii = 0, jj = 0,x = 0, z= 1 , y = 10 ; int array_2[10][15]; - + int argc = 3; + __asm volatile ("" : "+r" (argc)); for (ii = 0; ii < 10; ii++) { for (jj = 0; jj< 15; jj++) { diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_fn_custom.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_fn_custom.c index 8bdf1fd3ca1..c5d3d7c7530 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_fn_custom.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_fn_custom.c @@ -16,7 +16,7 @@ double my_func (double x, double y) /* char __sec_reduce_add (int *); */ -int main(int argc, char **argv) +int main(void) { int ii,array[10], y = 0, y_int = 0, array2[10]; double x, yy, array3[10], array4[10]; diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_fn_mutating.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_fn_mutating.c index 34cbd2c4cc3..7c194c2aa20 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_fn_mutating.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_fn_mutating.c @@ -13,7 +13,7 @@ void my_func (double *x, double y) } -int main(int argc, char **argv) +int main(void) { int ii,array[10], y = 0, y_int = 0, array2[10]; double x = 0.000, yy, array3[10], array4[10]; @@ -44,11 +44,11 @@ int main(int argc, char **argv) max_value = array3[0] * array4[0]; for (ii = 0; ii < 10; ii++) if (array3[ii] * array4[ii] > max_value) { - max_value = array3[ii] * array4[ii]; max_index = ii; } - + for (ii = 0; ii < 10; ii++) + my_func (&max_value, array3[ii] * array4[ii]); #if HAVE_IO for (ii = 0; ii < 10; ii++) diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_func_double.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_func_double.c index c6b518e6229..0c05994ee30 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_func_double.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_func_double.c @@ -4,7 +4,7 @@ /* #include <stdlib.h> */ /* char __sec_reduce_add (int *); */ -int main(int argc, char **argv) +int main(void) { int ii,array[10], y = 0, y_int = 0, array2[10]; double x, yy, array3[10], array4[10]; diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_func_double2.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_func_double2.c index c8a3ed7880f..7337a5106d9 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_func_double2.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_func_double2.c @@ -5,8 +5,9 @@ #include <stdio.h> #endif -int main(int argc, char **argv) +int main(void) { + int argc = 1; int ii,array[10], y = 0, y_int = 0, array2[10], y_int2=0, y2=0; double x, yy, array3[10], array4[10]; int all_zero, all_nonzero, any_zero, any_nonzero; @@ -20,6 +21,7 @@ int main(int argc, char **argv) array3[ii] = (double) ii + 0.00; array4[ii] = (double) (1.00000/ (double)(ii+1)); } + __asm volatile ("" : "+r" (argc)); y_int = __sec_reduce_any_nonzero (array3[:] + array[4]); y_int2 = __sec_reduce_any_zero (array3[:] + array[4]); y = __sec_reduce_all_nonzero ((array3[:] + array4[:]) * (argc-1)); diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/comma_exp.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/comma_exp.c index bcb3e1b1612..845d916ab96 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/comma_exp.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/comma_exp.c @@ -3,25 +3,20 @@ #include <stdlib.h> -int main2 (int argc, char **argv); -int main(int argc, char **argv) +int main2 (char **argv); +int main(void) { - int x = 0; - if (argc == 1) - { - const char *array[] = {"a.out", "5"}; - x = main2 (2, (char **)array); - } - else - x = main2 (argc, argv); - + int x = 0; + const char *array[] = {"a.out", "5"}; + x = main2 ((char **)array); return x; } -int main2 (int argc, char **argv) +int main2 (char **argv) { + int argc = 2; int array[10], array2[10], ii = 0, x = 2, z= 0 , y = 0 ; - + __asm volatile ("" : "+r" (argc)); for (ii = 0; ii < 10; ii++) array[ii] = 10; diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/conditional.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/conditional.c index 0be99b2102b..07c50173bfb 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/conditional.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/conditional.c @@ -2,10 +2,12 @@ /* { dg-options "-fcilkplus" } */ #include <stdlib.h> -int main(int argc, char **argv) +int main(void) { + int argc = 1; short array[1000], array2[1000], *array3, cond[1000], ii = 0; + __asm volatile ("" : "+r" (argc)); for (ii = 0; ii < 1000; ii++) { cond[ii] = 1; array[ii] = 1000; diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/exec-once.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/exec-once.c index 4b2a09f48b0..00b018a2c85 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/exec-once.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/exec-once.c @@ -17,7 +17,7 @@ int func (int *x) #endif return *x; } -int main (int argc, char **argv) +int main (void) { char array[NUMBER], array2[NUMBER]; int ii, d = 2; diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/exec-once2.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/exec-once2.c index 8d208b92c8f..d9f39dd66a8 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/exec-once2.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/exec-once2.c @@ -35,11 +35,13 @@ int func4(int x) /* This program makes an assumption that argc == 1. */ -int main (int argc, char **argv) +int main (void) { - + int argc = 1; int array[2500]; + /* This is done to make sure the compiler does not optimize out argc. */ + __asm volatile ("" : "+r" (argc)); /* This should set array[0->999] to 5. */ array[argc-1:func2(++argc):1] = 5; array[1000:500:1] = 10; /* set all variables in array[1000-->1499] to 10. */ diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/fn_ptr.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/fn_ptr.c index 1010920b3aa..024a1589994 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/fn_ptr.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/fn_ptr.c @@ -2,12 +2,13 @@ typedef int (*foo)(int); -int main(int argc, char **argv) +int main(void) { int array[10], array2[10][10]; foo func_array[10]; foo func_array2[10][10]; foo ***func_array_ptr; + int argc = 5; array[:] = func_array[:](10); /* { dg-error "array notations cannot be used with function pointer arrays" } */ func_array[0:5](10); /* { dg-error "array notations cannot be used with function pointer arrays" } */ diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/fp_triplet_values.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/fp_triplet_values.c index cb504f309ed..b2ac7bcc85a 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/fp_triplet_values.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/fp_triplet_values.c @@ -3,27 +3,12 @@ float q; -int main2 (int argc, char **argv); -int main (int argc, char **argv) -{ - int x = 0; - if (argc == 1) - { - const char *array[] = {"a.out", "5"}; - x = main2 (2, (char **)array); - } - else - x = main2 (argc, argv); - - return x; -} - void func (int *x) { *x = 5; } -int main2 (int argc, char **argv) +int main (void) { int array[10], array2[10]; array2[:] = array[1.5:2]; /* { dg-error "start-index of array notation triplet is not an integer" } */ diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/gather-scatter-errors.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/gather-scatter-errors.c index f4283dbf11f..f425fbec0f5 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/gather-scatter-errors.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/gather-scatter-errors.c @@ -1,10 +1,10 @@ /* { dg-options "-fcilkplus" } */ -int main (int argc, char **argv) +int main (void) { extern int func (int); int array[10][10], array2[10]; - + int argc = 1; array2[array[:][:]] = 5; /* { dg-error "rank of the array's index is greater than 1" } */ array2[array[:][:]] = 5; /* { dg-error "rank of the array's index is greater than 1" } */ diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/gather_scatter.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/gather_scatter.c index 67e1c19d6cc..b11a40ed325 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/gather_scatter.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/gather_scatter.c @@ -5,7 +5,7 @@ #include <stdio.h> #endif -int main(int argc, char **argv) +int main(void) { int array[10][10], array2[10], array3[10], x = 0, y; int x_correct, y_correct, ii, jj = 0; 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 b150b18f297..5544d4550aa 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,31 +1,29 @@ /* { dg-do run } */ /* { dg-options "-fcilkplus" } */ +#if HAVE_IO +#include <stdio.h> +#endif #include <stdlib.h> -int main2 (int argc, char **argv); +int main2 (char **argv); int main(int argc, char **argv) { - int x = 0; - if (argc == 1) - { - const char *array[] = {"a.out", "10", "15"}; - x = main2 (3, (char **) array); - } - else if (argc == 3) - x = main2 (argc, argv); - else - return 1; - + int x = 0; + const char *array[] = {"a.out", "10", "15"}; + x = main2 ((char **) array); return x; } -int main2 (int argc, char **argv) +int main2 (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 ii = 0; + 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, argc = 3; + + __asm volatile ("" : "+r" (argc)); for (ii = 0; ii < 10; ii++) { @@ -71,10 +69,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 +104,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 +123,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 +137,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 +179,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 +219,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; } diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/if_test_errors.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/if_test_errors.c new file mode 100644 index 00000000000..d17d8cf5de2 --- /dev/null +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/if_test_errors.c @@ -0,0 +1,56 @@ +/* { dg-do compile } */ +/* { dg-options "-fcilkplus" } */ + +#include <stdlib.h> +int main (void) +{ + int x = 3, y, z, array[10], array2[10], TwodArray[10][10], jj,kk,ll ; + 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; + + x = 5; + y = 10; + z = 2; + + if (!array[:]) /* This is OK! */ + array2[:] = 5; + else + array2[:] = 10; + if (!(array[0:10:1] + array[0:10:1])) /* { dg-error "condition and the then-block" } */ + array2d[:][:] = 5; + else + array2[:] = 10; + + if (!(array[0:10:1] + array[0:10:1])) /* { dg-error "condition and the else-block" } */ + array2[:] = 5; + else + array2d[:][:] = 10; + + + if (TwodArray[:][:] != 10) /* { dg-error "condition and the then-block" } */ + array2[:] = 10; + else + array2[:] = 5; + + if (FourDArray[43][:][:][:] != 10) /* This is OK! */ + array4[45][:][:][:] = 10; + else + array4[32][:][:][:] = 5; + + /* atoi(argv[1]) == 10, so it will convert all 10's to 5's */ + if (FourDArray[42][0:10:1][9:10:-1][0:5:2] != 10) /* { dg-error "condition and the then-block" } */ + array4[0:10:1][0:5:2][9:10:-1][0:5:2] = 10; + else + array4[0:10:1][0:5:2][9:10:-1][0:5:2] = 5; + + /* 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) + array4[0:10:1][0:5:2][9:10:-1][x:y:z] = 10; + else + array4[0:10][0:5:2][9:10:-1][x:y:z] = 5; + + return 0; +} diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/misc.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/misc.c index 891e1dc5559..35eb11537d1 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/misc.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/misc.c @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-options "-fcilkplus" } */ -int main (int argc, char **argv) +int main (void) { int array[10], array2[10][10]; int x, ii, jj ; diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors.c index 7b1aa89517f..a0a3742f5df 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors.c @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-options "-fcilkplus" } */ -int main (int argc, char **argv) +int main (void) { int array[10][10], array2[10]; diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors2.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors2.c index 8bf2282088e..2e86b4f92da 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors2.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors2.c @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-options "-fcilkplus" } */ -int main (int argc, char **argv) +int main (void) { int array[10][10], array2[10]; diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors3.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors3.c index 824e18660fd..34dfa16dd81 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors3.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors3.c @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-options "-fcilkplus" } */ -int main (int argc, char **argv) +int main (void) { int array[10][10], array2[10]; diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors4.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors4.c index 25a8a8fb62c..eba28a81ce3 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors4.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors4.c @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-options "-fcilkplus" } */ -int main (int argc, char **argv) +int main (void) { int array[10][10], array2[10]; diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/pr57457-2.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/pr57457-2.c new file mode 100644 index 00000000000..ac11b9209b1 --- /dev/null +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/pr57457-2.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-options "-fcilkplus" } */ + +/* Test-case contains no array notation but is compiled with -fcilkplus. + It will still print the too few arguments func, thereby saying the + if-statement after the for-loop to check for !flag_enable_cilkplus || + !is_cilkplus_reduce_function (fundecl) is not valid is always taken. */ + +int func (int, int); /* { dg-message "declared here" } */ + +int main (void) +{ + int a = 5, b = 2; + return func (a); /* { dg-error "too few arguments to function" } */ +} diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/pr57457.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/pr57457.c new file mode 100644 index 00000000000..68a1fd81185 --- /dev/null +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/pr57457.c @@ -0,0 +1,39 @@ +/* { dg-do compile } */ +/* { dg-options "-fcilkplus" } */ + +/* This test has no array notation components in it and thus should compile + fine without crashing. */ + +typedef unsigned int size_t; +typedef int (*__compar_fn_t) (const void *, const void *); +extern void *bsearch (const void *__key, const void *__base, + size_t __nmemb, size_t __size, __compar_fn_t + __compar) + __attribute__ ((__nonnull__ (1, 2, 5))) ; +extern __inline __attribute__ ((__gnu_inline__)) void * +bsearch (const void *__key, const void *__base, size_t __nmemb, size_t + __size, + __compar_fn_t __compar) +{ + size_t __l, __u, __idx; + const void *__p; + int __comparison; + __l = 0; + __u = __nmemb; + while (__l < __u) + { + __idx = (__l + __u) / 2; + __p = (void *) (((const char *) __base) + + (__idx * __size)); + __comparison = (*__compar) (__key, + __p); + if (__comparison < 0) + __u = __idx; + else if (__comparison > 0) + __l = __idx + 1; + else + return (void *) + __p; + } + return ((void *)0); +} diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/pr57541.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/pr57541.c new file mode 100755 index 00000000000..cabdb2376e6 --- /dev/null +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/pr57541.c @@ -0,0 +1,14 @@ +/* { dg-do compile } */ +/* { dg-options "-fcilkplus" } */ + +int A[10]; + +int main () { + char c = (char)N; /* { dg-error "undeclared" } */ + short s = (short)N; + long l = (long)N; + A[l:s:c]; +} + +/* { dg-message "note: each" "defined" { target *-*-* } 7 } */ + diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/pr57577.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/pr57577.c new file mode 100644 index 00000000000..fb3490efa82 --- /dev/null +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/pr57577.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-fcilkplus" } */ + +int A[10], B[10][10]; +int foo (int a); + +int main () { + A[:] = foo (B[:][:]); /* { dg-error "rank mismatch between" } */ + A[0] = foo (B[:][:]); /* { dg-error "cannot be scalar when" } */ + return 0; +} diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c index a8c9dab5673..b5e37ced12d 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c @@ -1,7 +1,10 @@ /* { dg-do compile } */ -/* { dg-options "-fcilkplus" } */ +/* { dg-options "-fcilkplus -w" } */ -int main (int argc, char **argv) +/* We use -w because in the first error, there will be a warning of setting an + integer to a pointer. Just ignore it to expose the rank mismatch error. */ + +int main (void) { int x = 0; int array[10][10], array2[10]; diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch2.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch2.c index 74fece4d172..4a4882dbae6 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch2.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch2.c @@ -7,10 +7,10 @@ int function_call (int x) return x; } -int main(int argc, char **argv) +int main (void) { int array[100], array2[100][100]; - + int argc = 4; array[:] = array[:] + array2[:][:]; /* { dg-error "rank mismatch between" } */ if (array[:] + array2[:][:]) /* { dg-error "rank mismatch between" } */ diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit.c index fe66cf87be0..bacbf350566 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit.c @@ -1,22 +1,7 @@ /* { dg-do compile } */ /* { dg-options "-fcilkplus" } */ -int main2 (int argc, char **argv); -int main (int argc, char **argv) -{ - int x = 0; - if (argc == 1) - { - const char *array[] = {"a.out", "5"}; - x = main2 (2, (char **)array); - } - else - x = main2 (argc, argv); - - return x; -} - -int main2 (int argc, char **argv) +int main (void) { int array[10][10], array2[10]; diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit2.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit2.c index 29f8c32d4a0..0aef0c29aca 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit2.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit2.c @@ -1,25 +1,11 @@ /* { dg-do compile } */ /* { dg-options "-fcilkplus" } */ -int main2 (int argc, char **argv); -int main (int argc, char **argv) -{ - int x = 0; - if (argc == 1) - { - const char *array[] = {"a.out", "5"}; - x = main2 (2, (char**)array); - } - else - x = main2 (argc, argv); - - return x; -} - -int main2 (int argc, char **argv) +int main (void) { + int argc = 2; int array[10][10], array2[10]; - + __asm volatile ("" : "+r" (argc)); array[:][:] = __sec_implicit_index(argc) + array[:][:]; /* { dg-error "__sec_implicit_index parameter" } */ return 0; } diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit_ex.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit_ex.c index c5f7cdf18e7..4912e6c6ce5 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit_ex.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit_ex.c @@ -1,11 +1,7 @@ /* { dg-do run } */ /* { dg-options "-fcilkplus" } */ -void abort (void); -void exit (int); - - -int main(int argc, char **argv) +int main(void) { int jj, kk, array_3C[10][10][10]; int ii,array[10], y = 0, y_int = 0, array2[10], array_3[10][10][10]; @@ -24,10 +20,7 @@ int main(int argc, char **argv) for (jj = 0; jj < 10; jj++) for (kk = 0; kk < 10; kk++) if (array_3[ii][jj][kk] != array_3C[ii][jj][kk]) - abort (); + return 1; - - exit (0); - return 0; } diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_reduce_max_min_ind.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_reduce_max_min_ind.c index 4bd6030a61d..9652e1594b4 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_reduce_max_min_ind.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_reduce_max_min_ind.c @@ -1,22 +1,7 @@ /* { dg-do compile } */ /* { dg-options "-fcilkplus" } */ -int main2 (int argc, char **argv); -int main (int argc, char **argv) -{ - int x = 0; - if (argc == 1) - { - const char *array[] = {"a.out", "5"}; - x = main2 (2, (char **)array); - } - else - x = main2 (argc, argv); - - return x; -} - -int main2 (int argc, char **argv) +int main (void) { int array[10][10], array2[10]; int x, y; diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_reduce_return.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_reduce_return.c index a72cfafba1c..034017146f3 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_reduce_return.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_reduce_return.c @@ -11,10 +11,12 @@ int mult_all (int *my_array, int size) return __sec_reduce_mul (my_array[0:size]); } -int main (int argc, char **argv) +int main (void) { + int argc = 1; int array[10000]; - + + __asm volatile ("" : "+r" (argc)); array[:] = argc; /* All elements should be one. */ if (add_all (array, 10000) != 10000) diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/test_builtin_return.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/test_builtin_return.c index 0df324a80d4..b9f9f8d6507 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/test_builtin_return.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/test_builtin_return.c @@ -28,11 +28,13 @@ int func4 (int *a1, int *a2) { return a1[NUMBER-1] * (__sec_reduce_add (a1[0:NUMBER] * a2[0:NUMBER]) + a2[0] + a2[1] + a2[3])/a1[NUMBER-2]; } -int main(int argc, char **argv) +int main(void) { int array[NUMBER], array2[NUMBER]; int return_value = 0; int ii = 0; + int argc = 1; + __asm volatile ("" : "+r" (argc)); for (ii = 0; ii < NUMBER; ii++) { array[ii] = argc; /* This should calculate to 1. */ diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/vla.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/vla.c index 038ae482df8..843745e384f 100644 --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/vla.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/vla.c @@ -5,8 +5,10 @@ int func (int x) { return x++; } -int main(int argc, char **argv) +int main(void) { + int argc = 1; + __asm volatile ("" : "+r" (argc)); int array[argc]; array[:] = 5; /* { dg-error "start-index and length fields necessary for using array notations in variable-length arrays." } */ |