OSDN Git Service

* gcc.c-torture/compile/pr11832.c: XFAIL for mips and powerpc-linux,
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / compile / 950922-1.c
1 struct sw {
2   const void *x;
3   int r;
4 };
5 struct sq {
6   struct sw *q_w;
7   int t;
8   int z;
9 };
10
11 int
12 f (int ch, char *fp, char *ap)
13 {
14   register int n;
15   register char *cp;
16   register struct sw *p;
17   register int f;
18   int prec;
19   double _double;
20   int expt;
21   int ndig;
22   char expstr[7];
23   unsigned long long _uquad;
24   struct sq q;
25   struct sw w[8];
26   static char zeroes[16];
27
28   for (;;) {
29     switch (ch) {
30     case 'd':
31       _double = (double) (ap += 8, *((double *) (ap - 8)));
32       break;
33     case 'o':
34       goto nosign;
35     case 'u':
36       _uquad = (f & 0x020 ? (ap += 8, *((long long *) (ap - 8))) : f & 0x010 ? (ap += 4, *((long *) (ap - 4))) : f & 0x040 ? (long)(short)(ap += 4, *((int *) (ap - 4))) : (long)(ap += 4, *((int *) (ap - 4))));
37       goto nosign;
38     case 'x':
39       _uquad = (f & 0x020 ? (ap += 8, *((long long *) (ap - 8))) : f & 0x010 ? (ap += 4, *((long *) (ap - 4))) : f & 0x040 ? (long)(unsigned short)(ap += 4, *((int *) (ap - 4))) : (long)(ap += 4, *((int *) (ap - 4))));
40     nosign:
41       if (_uquad != 0 || prec != 0);
42       break;
43     default:;
44     }
45     if ((f & 0x100) == 0) {
46     } else {
47       if (ch >= 'f') {
48         if (_double == 0) {
49           if (expt < ndig || (f & 0x001) != 0) {
50             { if ((n = (ndig - 1)) > 0) { while (n > 16) {{ p->x = (zeroes); p->r = 16; q.z += 16; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }} n -= 16; }{ p->x = (zeroes); p->r = n; q.z += n; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }}}}
51           }
52         } else if (expt <= 0) {
53           { p->x = ("0"); p->r = 1; q.z += 1; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }}
54           { p->x = 0; p->r = 1; q.z += 1; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }}
55           { if ((n = (-expt)) > 0) { while (n > 16) {{ p->x = (zeroes); p->r = 16; q.z += 16; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }} n -= 16; }{ p->x = (zeroes); p->r = n; q.z += n; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }} }}
56           { p->x = cp; p->r = ndig; q.z += ndig; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }}
57         } else {
58           { p->x = cp; p->r = expt; q.z += expt; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }}
59           cp += expt;
60           { p->x = ("."); p->r = 1; q.z += 1; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }}
61           { p->x = cp; p->r = (ndig-expt); q.z += (ndig-expt); p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }}
62         }
63       }
64     }
65   }
66
67  error:;
68 }