summaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/cilk-plus/AN
diff options
context:
space:
mode:
authorCaroline Tice <cmtice@chromium.org>2013-06-21 12:05:49 -0700
committerCaroline Tice <cmtice@chromium.org>2013-06-21 12:05:49 -0700
commit9c1705845241cdea5cf61574218edef282901fbd (patch)
tree021da661f8a821bc7eea277521fa13f2043879a0 /gcc/testsuite/c-c++-common/cilk-plus/AN
parent9bdedf4df4166718fa0a44811c643214c6880471 (diff)
parent8a46ed36b0449c870d0a938c1010ad610ebcf4f7 (diff)
downloadgcc-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')
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/array_test1.c18
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/array_test2.c18
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/array_test_ND.c23
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_fn_custom.c2
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_fn_mutating.c6
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_func_double.c2
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/builtin_func_double2.c4
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/comma_exp.c21
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/conditional.c4
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/exec-once.c2
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/exec-once2.c6
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/fn_ptr.c3
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/fp_triplet_values.c17
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/gather-scatter-errors.c4
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/gather_scatter.c2
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/if_test.c176
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/if_test_errors.c56
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/misc.c2
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors.c2
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors2.c2
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors3.c2
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors4.c2
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/pr57457-2.c15
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/pr57457.c39
-rwxr-xr-xgcc/testsuite/c-c++-common/cilk-plus/AN/pr57541.c14
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/pr57577.c11
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c7
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch2.c4
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit.c17
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit2.c20
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit_ex.c11
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/sec_reduce_max_min_ind.c17
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/sec_reduce_return.c6
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/test_builtin_return.c4
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/vla.c4
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." } */