OSDN Git Service

2009-05-19 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / compile / 920501-4.c
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 } */
4 /* { dg-xfail-if "" { m6811-*-* m6812-*-* } { "*" } { "-mshort" } } */
5
6 foo ()
7 {
8   int r0[8186 ];
9   int r1[2 ];
10   int r2[2 ];
11   int bitm0[2 ];
12   int bitm1[2 ];
13   int bitm2[2 ];
14
15   int i,j,k,m,n,m_max;
16   int f;
17   double fm,ft;
18
19   while (1) {
20
21     if (m%4 == 2)
22       ++m;
23
24     if (m_max != 0 && m > m_max)
25       break;
26
27     fm=m;
28
29     r0[k=1]=0;
30     bitm0[0] = 0;
31
32       while ( n%f == 0 ) {
33         while ( (ft != 0) && (ft < fm )) {
34           bitm1[i] = 0;
35           r1[i]=0;
36           }
37
38         while ( r0[i] != 0 && r1[i] != 0 ) {
39           if ( r0[i] < r1[i] ) {
40             bitm2[k] = bitm0[i];
41             r2[k++]=0;
42           }
43           else if ( r0[i] > r1[j] ) {
44             bitm2[k] = bitm1[j];
45             r2[k++]=r1[j++];
46           }
47           else {
48             bitm1[k] = bitm0[i];
49             r2[k++]=r0[i++];
50           }
51         }
52       }
53   }
54 }