Merged revisions 208012,208018-208019,208021,208023-208030,208033,208037,208040-20804...
[official-gcc.git] / main / gcc / testsuite / g++.dg / cilk-plus / AN / array_test2_tplt.cc
blob041c052897665228f133fa714edc8ef636baa153
1 /* { dg-do run } */
2 /* { dg-options "-fcilkplus -Wno-overflow" } */
4 #include <cstdlib>
5 #include <string.h>
6 template <class T> int main2(char **argv);
7 int main(void)
9 int x = 1, y = 1, z = 1, w = 1;
10 char *array[2];
11 array[0] = strdup ("a.out");
12 array[1] = strdup ("5");
13 w = main2<short>(array);
14 w += main2<unsigned short> (array);
15 x = main2<char> (array);
16 x += main2<unsigned char> (array);
17 y = main2<int> (array);
18 y += main2<unsigned int> (array);
19 z = main2<long> (array);
20 z += main2<unsigned long> (array);
21 z += main2<long long> (array);
23 return (w+x+y+z);
26 template<class T>
27 int main2(char **argv)
29 T array[10], array2[10];
30 int ii = 0, x = 2, z= 0 , y = 0 ;
32 for (ii = 0; ii < 10; ii++)
34 array[ii] = 10;
35 array2[ii] = 5000000;
38 array2[0:10:1] = array[0:10:1];
40 for (ii = 0; ii < 10; ii++)
41 if (array2[ii] != array[ii])
42 return 1;
44 for (ii = 0; ii < 10; ii++)
46 array[ii] = 10;
47 array2[ii] = 5000000;
50 array2[0:5:2] = array[0:5:2];
52 for (ii = 0; ii < 10; ii += 2)
53 if (array[ii] != array2[ii])
54 return 2;
56 for (ii = 0; ii < 10; ii++)
58 array[ii] = 10;
59 array2[ii] = 5000000;
61 x = atoi(argv[1]);
62 z = (10-atoi(argv[1]))/atoi(argv[1]);
64 array2[x:5:z] = array[x:5:z];
66 for (ii = x; ii < 5; ii += z)
67 if (array2[ii] != array[ii])
68 return 3;
70 for (ii = 0; ii < 10; ii++)
72 array[ii] = 500;
73 array2[ii] = 1000000;
75 x = atoi(argv[1]);
76 z = (10-atoi(argv[1]))/atoi(argv[1]);
77 y = 10-atoi(argv[1]);
79 array2[x:y:z] = array[x:y:z];
80 for (ii = x; ii < 10; ii = ii + z)
81 if (array2[ii] != array[ii])
82 return 4;
84 for (ii = 0; ii < 10; ii++)
86 array[ii] = 500;
87 array2[ii] = 1000000;
89 x = atoi(argv[1]);
90 z = (10-atoi(argv[1]))/atoi(argv[1]);
91 y = 10-atoi(argv[1]);
93 array[x:y:((10-atoi(argv[1]))/atoi(argv[1]))] =
94 array2[x:y:((10-atoi(argv[1]))/atoi(argv[1]))];
96 for (ii = x; ii < 10; ii += z)
97 if (array[ii] != array2[ii])
98 return 6;
101 x = atoi(argv[1]);
102 z = (10-atoi(argv[1]))/atoi(argv[1]);
103 y = 10-atoi(argv[1]);
105 for (ii = 0; ii < 10; ii++)
107 array[ii] = 500;
108 array2[ii] = 1000000;
111 array[atoi(argv[1]):(10-atoi(argv[1])):((10-atoi(argv[1]))/atoi(argv[1]))] =
112 array2[atoi(argv[1]):(10-atoi(argv[1])):((10-atoi(argv[1]))/atoi(argv[1]))];
113 for (ii = x; ii < 10; ii += z)
114 if (array[ii] != array2[ii])
115 return 6;
117 for (ii = 0; ii < 10; ii++)
119 array[ii] = 4;
120 array2[ii] = 2;
123 array[atoi("5"):5:1] = array2[atoi("5"):5:1];
125 for (ii = atoi ("5"); ii < 10; ii++)
126 if (array[ii] != array2[ii])
127 return 7;
129 for (ii = 0; ii < 10; ii++)
131 array[ii] = 5;
132 array2[ii] = 1;
134 array[atoi("5"):atoi("5"):atoi("1")] = array2[atoi("5"):atoi("5"):atoi("1")];
136 for (ii = 5; ii < 10; ii++)
137 if (array2[ii] != array[ii])
138 return 8;
140 return 0;