home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_300 / 357_01 / cstar1.exe / ASSN.TST < prev    next >
Text File  |  1991-11-15  |  3KB  |  159 lines

  1. assign() {
  2.     int x,y,z,w;
  3.     char a,b,c,d;
  4.     a = '\012';
  5.     b = '\005';
  6.     c = '\000';
  7.     d = '\377';
  8.     x = 5;
  9.     y = 10;
  10.     z = 15;
  11.     w = -5;
  12.  
  13.     u = 1;        /* supposed to fail in PL68K */
  14.  
  15. /* stuff that ought to fail */
  16.     a = a << b;
  17.     a = b >> c;
  18.     a = b * c;
  19.     a = b / c;
  20.     a = b % c;
  21.     a = b ^ c;
  22.     a = b & c;
  23.     a = b | c;
  24.  
  25.     a = b < c;
  26.     a = b >= c;
  27.     a = b == c;
  28.     a = !b;
  29.  
  30.     a = (int) b;
  31.     a = b;
  32.  
  33.     b + c;
  34.     a = b ~ c;
  35.     b + x;
  36.  
  37.     a = b + x;    /* mixed mode */
  38.     a = b && x;
  39.     a = x && x;
  40.     a = x && b;
  41.     a = b && c;
  42.     a = x < y;
  43.  
  44. /* relatively simple assignments of various kinds */
  45.     a = b;
  46.     a += '\001';
  47.     a += b;
  48.     a -= '\001';
  49.     a -= b;
  50.     a <<= '\005';
  51.     a >>= '\004';
  52.         
  53.     b ^= d1;
  54.     a &= '\005';
  55.     a &= b;
  56.     a |= '\007';
  57.     b |= c;
  58.     b ~= b;
  59.     b = a + ~b + c + d;
  60.     b = a + (~b + ~c);
  61.     b = a + (~(~b + ~c));
  62.     b = a + (~b + (~c + ~d));    /* run out of temps somewhere */
  63.     
  64.     a = b + c;
  65.     b = d + a + b + c;
  66.     b = d - a - b + c;
  67.     a = b = c = d = 1;
  68.     a = (b + c) - ( a + d);
  69.     a = (b + c) - (b=a + d);
  70.     a = b + (c + d);
  71.     a = b + (c + (d + a));    /* at some point one runs out of temps */
  72.     b = -a + -b + -c;
  73.  
  74. /* I wonder about these forms ... */
  75.     a = b ++ c;
  76.     a = b + +c;
  77.     a = b -- c;
  78.     a = b - -c;
  79.     a = b - - c;
  80.     a = b+++c;
  81.     a = b + ++c;
  82.     a = b---c;
  83.     a = +b;
  84.  
  85. /* now do the integers */    
  86. /* the erroneous zone */
  87.     x = x << y;
  88.     x = y >> z;
  89.     x = y * z;
  90.     x = y / z;
  91.     x = y % z;
  92.     x = y ^ z;
  93.     x = y & z;
  94.     x = y | z;
  95.     x = y + z + y & z;
  96.     x = y + z + (y & z);
  97.     x = y = z + (int) u;
  98.     x ^= y;
  99.  
  100. /* relatively simple assignments */
  101.     x = y;
  102.     x += 1;
  103.     x += y;
  104.     x -= 1;
  105.     x -= y;
  106.     x <<= 5;
  107.     x >>= 4;
  108.  
  109.     y ^= d1;
  110.     x &= 5;
  111.     x &= y;
  112.     x |= 7;
  113.     y |= z;
  114.     w != w;
  115.     w = !z & x & y;
  116.     
  117.     x = y + z;
  118.     y = w + x + y + z;
  119.     y = d - x - y + z;
  120.     y = -x + -z + -w;
  121.  
  122.     y ~= y;
  123.     y = x + ~y + z + w;
  124.     y = x + (~y + ~z);
  125.     y = x + (~(~y + ~z));
  126.     y = x + (~y + (~z + ~w));    /* run out of temps somewhere */
  127.     
  128.     u = d + w;    /* u is presumably undefined */
  129.  
  130.     x = y = z = w = 15;
  131.     x = (y + z) - (w - x);
  132.     x = (y + z) + (z=w - x);
  133.     w = (w=z + x) - (w=y + z);
  134.  
  135. /* and now put a different cast on it */
  136.     x = (int) x;
  137.     x = (int) a + y - ((int) b) + z); 
  138.     x = (int)(char) x;
  139.     x = ((int)(char)) x;
  140.     x = ((int)(char) x) + y - 1;
  141.     a = (char) x + b - (c &= 5);
  142.     a = (char) z;
  143.     a &= (char) y;
  144.     a &= (char) (y = x + 5);
  145.     x &= (int) (a = b + 5);
  146.     x = (int) ((a = (char) b) + '\001);
  147.     a = (int) a;    /* mixed mode */
  148.     u = (int) a;    /* our undefined friend */
  149.     x = (int) (x + u);
  150.     x = (int) (x + (char) u);
  151.  
  152. /* miscellaneous */
  153.     x = sizeof(int);
  154.     x = sizeof(a);
  155.     x = sizeof(struct abc*);
  156.     x = sizeof(long);
  157.     x = sizeof(long *);
  158. }
  159.