* tree-loop-distribution.c (struct partition): New field recording
[official-gcc.git] / gcc / testsuite / gcc.c-torture / compile / 930120-1.c
bloba1d8df87c4b7a01d382d6ca3e7049e1fbb8bfed1
1 /* { dg-require-effective-target untyped_assembly } */
2 union {
3 short I[2];
4 long int L;
5 char C[4];
6 } itolws;
7 char *errflg;
8 long int dot;
9 short dotinc;
10 long int expvf;
12 char *
13 f(fcount,ifp,itype,ptype)
14 short fcount;
15 char *ifp;
17 unsigned w;
18 long int savdot, wx;
19 char *fp;
20 char c, modifier, longpr;
21 union {
22 double dval;
23 struct {
24 int i1;
25 int i2;
26 } ival;
27 } dw;
28 union {
29 float fval;
30 int ival;
31 } fw;
32 int gotdot = 0;
33 while (fcount > 0) {
34 fp = ifp;
35 c = *fp;
36 longpr = ((c >= 'A') & (c <= 'Z') | (c == 'f') | (c == '4') | (c == 'p') | (c == 'i'));
37 if ((itype == 0) || (*fp == 'a')) {
38 wx = dot;
39 w = dot;
40 } else {
41 gotdot = 1;
42 wx = get((int)dot, itype);
43 if (!longpr) {
44 w = (itolws.L=(wx), itolws.I[((dot)&3)>>1]);
47 if (c == 'F') {
48 dw.ival.i1 = wx;
49 if (itype == 0) {
50 dw.ival.i2 = expvf;
54 modifier = *fp++;
55 switch(modifier) {
56 case ' ' :
57 case '\t' :
58 break;
59 case 't':
60 case 'T':
61 printf("%T",fcount);
62 return(fp);
63 case 'r':
64 case 'R':
65 printf("%M",fcount);
66 return(fp);
67 case 'k':
68 printf("%k",w);
69 break;
70 case 'K':
71 printf("%K",wx);
72 break;
73 case 'a':
74 psymoff(dot,ptype,":%16t");
75 dotinc = 0;
76 break;
77 case 'p':
78 psymoff(0,ptype,"%16t");
79 break;
80 case 'u':
81 printf("%-8u",w);
82 break;
83 case 'U':
84 printf("%-16U",wx); break;
85 case 'c':
86 case 'C':
87 if (modifier == 'C') {
88 printesc((int)(itolws.L=(wx), itolws.C[(dot)&3]));
89 } else {
90 printc((char)(itolws.L=(wx), itolws.C[(dot)&3]));
92 dotinc = 1;
93 break;
94 case 'b':
95 printf("%-8x", (itolws.L=(wx), itolws.C[(dot)&3]));
96 dotinc = 1;
97 break;
98 case 'B':
99 printf("%-8o", (itolws.L=(wx), itolws.C[(dot)&3]));
100 dotinc = 1;
101 break;
102 case 's':
103 case 'S':
104 savdot = dot;
105 dotinc = 1;
106 while ((c = (itolws.L=(wx), itolws.C[(dot)&3])) && (errflg == 0)) {
107 dot = inkdot(1);
108 if (modifier == 'S') {
109 printesc(c);
110 } else {
111 printc(c);
113 endline();
114 if (!(dot & 3))
115 wx = get((int)dot, itype);
117 dotinc = dot - savdot + 1;
118 dot = savdot;
119 break;
120 case 'i':
121 if (gotdot) {
122 wx = get((int)(dot & ~3), itype);
124 iDasm((int)(wx), (unsigned int)0, (unsigned int)(dot&~3));
125 printc('\n');
126 break;
127 case 'f':
128 fw.ival = wx;
129 printf("%-16.9f", fw.fval);
130 dotinc = 4;
131 break;
132 case 'F':
133 printf("%-32.18F", dw.dval);
134 dotinc = 8;
135 break;
138 return(fp);