home *** CD-ROM | disk | FTP | other *** search
- assign() {
- int x,y,z,w;
- char a,b,c,d;
- a = '\012';
- b = '\005';
- c = '\000';
- d = '\377';
- x = 5;
- y = 10;
- z = 15;
- w = -5;
-
- u = 1; /* supposed to fail in PL68K */
-
- /* stuff that ought to fail */
- a = a << b;
- a = b >> c;
- a = b * c;
- a = b / c;
- a = b % c;
- a = b ^ c;
- a = b & c;
- a = b | c;
-
- a = b < c;
- a = b >= c;
- a = b == c;
- a = !b;
-
- a = (int) b;
- a = b;
-
- b + c;
- a = b ~ c;
- b + x;
-
- a = b + x; /* mixed mode */
- a = b && x;
- a = x && x;
- a = x && b;
- a = b && c;
- a = x < y;
-
- /* relatively simple assignments of various kinds */
- a = b;
- a += '\001';
- a += b;
- a -= '\001';
- a -= b;
- a <<= '\005';
- a >>= '\004';
-
- b ^= d1;
- a &= '\005';
- a &= b;
- a |= '\007';
- b |= c;
- b ~= b;
- b = a + ~b + c + d;
- b = a + (~b + ~c);
- b = a + (~(~b + ~c));
- b = a + (~b + (~c + ~d)); /* run out of temps somewhere */
-
- a = b + c;
- b = d + a + b + c;
- b = d - a - b + c;
- a = b = c = d = 1;
- a = (b + c) - ( a + d);
- a = (b + c) - (b=a + d);
- a = b + (c + d);
- a = b + (c + (d + a)); /* at some point one runs out of temps */
- b = -a + -b + -c;
-
- /* I wonder about these forms ... */
- a = b ++ c;
- a = b + +c;
- a = b -- c;
- a = b - -c;
- a = b - - c;
- a = b+++c;
- a = b + ++c;
- a = b---c;
- a = +b;
-
- /* now do the integers */
- /* the erroneous zone */
- x = x << y;
- x = y >> z;
- x = y * z;
- x = y / z;
- x = y % z;
- x = y ^ z;
- x = y & z;
- x = y | z;
- x = y + z + y & z;
- x = y + z + (y & z);
- x = y = z + (int) u;
- x ^= y;
-
- /* relatively simple assignments */
- x = y;
- x += 1;
- x += y;
- x -= 1;
- x -= y;
- x <<= 5;
- x >>= 4;
-
- y ^= d1;
- x &= 5;
- x &= y;
- x |= 7;
- y |= z;
- w != w;
- w = !z & x & y;
-
- x = y + z;
- y = w + x + y + z;
- y = d - x - y + z;
- y = -x + -z + -w;
-
- y ~= y;
- y = x + ~y + z + w;
- y = x + (~y + ~z);
- y = x + (~(~y + ~z));
- y = x + (~y + (~z + ~w)); /* run out of temps somewhere */
-
- u = d + w; /* u is presumably undefined */
-
- x = y = z = w = 15;
- x = (y + z) - (w - x);
- x = (y + z) + (z=w - x);
- w = (w=z + x) - (w=y + z);
-
- /* and now put a different cast on it */
- x = (int) x;
- x = (int) a + y - ((int) b) + z);
- x = (int)(char) x;
- x = ((int)(char)) x;
- x = ((int)(char) x) + y - 1;
- a = (char) x + b - (c &= 5);
- a = (char) z;
- a &= (char) y;
- a &= (char) (y = x + 5);
- x &= (int) (a = b + 5);
- x = (int) ((a = (char) b) + '\001);
- a = (int) a; /* mixed mode */
- u = (int) a; /* our undefined friend */
- x = (int) (x + u);
- x = (int) (x + (char) u);
-
- /* miscellaneous */
- x = sizeof(int);
- x = sizeof(a);
- x = sizeof(struct abc*);
- x = sizeof(long);
- x = sizeof(long *);
- }
-