2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / gcc.c-torture / compile / 920501-4.c
blobf6ddb19b57d59c9f700e52796fe011123a3e4c2e
1 /* This test fails on HC11/HC12 when it is compiled without -mshort because
2 the 'r0' array is too large. Force to use 16-bit ints for it. */
3 /* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
5 foo ()
7 int r0[8186 ];
8 int r1[2 ];
9 int r2[2 ];
10 int bitm0[2 ];
11 int bitm1[2 ];
12 int bitm2[2 ];
14 int i,j,k,m,n,m_max;
15 int f;
16 double fm,ft;
18 while (1) {
20 if (m%4 == 2)
21 ++m;
23 if (m_max != 0 && m > m_max)
24 break;
26 fm=m;
28 r0[k=1]=0;
29 bitm0[0] = 0;
31 while ( n%f == 0 ) {
32 while ( (ft != 0) && (ft < fm )) {
33 bitm1[i] = 0;
34 r1[i]=0;
37 while ( r0[i] != 0 && r1[i] != 0 ) {
38 if ( r0[i] < r1[i] ) {
39 bitm2[k] = bitm0[i];
40 r2[k++]=0;
42 else if ( r0[i] > r1[j] ) {
43 bitm2[k] = bitm1[j];
44 r2[k++]=r1[j++];
46 else {
47 bitm1[k] = bitm0[i];
48 r2[k++]=r0[i++];