|
|
1.1 ! root 1: /* The Plum Hall Validation Suite for C ! 2: * Unpublished copyright (c) 1986-1991, Chiron Systems Inc and Plum Hall Inc. ! 3: * VERSION: 4 ! 4: * DATE: 1993-01-01 ! 5: * The "ANSI" mode of this suite corresponds to official ANSI C, X3.159-1989. ! 6: * As per your license agreement, your distribution is not to be moved or copied outside the Designated Site ! 7: * without specific permission from Plum Hall Inc. ! 8: */ ! 9: ! 10: #include "defs.h" ! 11: ! 12: /* ! 13: * PREC1B -- try all operator pairs -- this file uses all binary operators ! 14: * in the first position (see prec 2 for the other way around). ! 15: */ ! 16: ! 17: static void p1_17(); ! 18: static void p1_18(); ! 19: static void p1_19(); ! 20: static void p1_20(); ! 21: static void p1_21(); ! 22: static void p1_22(); ! 23: static void p1_23(); ! 24: static void p1_24(); ! 25: static void p1_25(); ! 26: static void p1_26(); ! 27: static void p1_27(); ! 28: static void p1_28(); ! 29: static void p1_29(); ! 30: static void p1_30(); ! 31: static void p1_31(); ! 32: static void p1_32(); ! 33: static void p1_33(); ! 34: static void p1_34(); ! 35: static void p1_35(); ! 36: ! 37: void prec1b() ! 38: { ! 39: Filename = "prec1b.c"; ! 40: p1_17(); /* * */ ! 41: p1_18(); /* / */ ! 42: p1_19(); /* % */ ! 43: p1_20(); /* + */ ! 44: p1_21(); /* - */ ! 45: p1_22(); /* >> */ ! 46: p1_23(); /* << */ ! 47: p1_24(); /* > */ ! 48: p1_25(); /* < */ ! 49: p1_26(); /* >= */ ! 50: p1_27(); /* <= */ ! 51: p1_28(); /* == */ ! 52: p1_29(); /* != */ ! 53: p1_30(); /* & */ ! 54: p1_31(); /* ^ */ ! 55: p1_32(); /* | */ ! 56: p1_33(); /* && */ ! 57: p1_34(); /* || */ ! 58: p1_35(); /* ?= */ ! 59: } ! 60: ! 61: /* X * Y */ ! 62: static void p1_17() ! 63: { ! 64: int i = 4; ! 65: int j = 3; ! 66: int k = 2; ! 67: iequals(__LINE__, i*j*k, 24); ! 68: iequals(__LINE__, i*j/k, 6); ! 69: iequals(__LINE__, i*j%k, 0); ! 70: iequals(__LINE__, i*j+k, 14); ! 71: iequals(__LINE__, i*j-k, 10); ! 72: iequals(__LINE__, i*j>>k, 3); ! 73: iequals(__LINE__, i*j<<k, 48); ! 74: iequals(__LINE__, i*j>k, 1); ! 75: iequals(__LINE__, i*j<k, 0); ! 76: iequals(__LINE__, i*j<=k, 0); ! 77: iequals(__LINE__, i*j>=k, 1); ! 78: iequals(__LINE__, i*j==k, 0); ! 79: iequals(__LINE__, i*j!=k, 1); ! 80: iequals(__LINE__, i*j&k, 0); ! 81: iequals(__LINE__, i*j^k, 14); ! 82: iequals(__LINE__, i*j|k, 14); ! 83: iequals(__LINE__, i*j&&k,1); ! 84: iequals(__LINE__, i*j||k, 1); ! 85: iequals(__LINE__, i*j?k:0, 2); ! 86: /* X*Y=Z is illegal */ ! 87: /* X*Y*=Z is illegal */ ! 88: /* X*Y/=Z is illegal */ ! 89: /* X*Y%=Z is illegal */ ! 90: /* X*Y+=Z is illegal */ ! 91: /* X*Y-=Z is illegal */ ! 92: /* X*Y<<=Z is illegal */ ! 93: /* X*Y>>=Z is illegal */ ! 94: /* X*Y&=Z is illegal */ ! 95: /* X*Y^=Z is illegal */ ! 96: /* X*Y|=Z is illegal */ ! 97: iequals(__LINE__, (i*j,k), k); ! 98: } ! 99: ! 100: /* X / Y */ ! 101: static void p1_18() ! 102: { ! 103: int i = 17; ! 104: int j = 3; ! 105: int k = 2; ! 106: iequals(__LINE__, i/j/k, 2); ! 107: iequals(__LINE__, i/j%k, 1); ! 108: iequals(__LINE__, i/j+k, 7); ! 109: iequals(__LINE__, i/j-k, 3); ! 110: iequals(__LINE__, i/j>>k, 1); ! 111: iequals(__LINE__, i/j<<k, 20); ! 112: iequals(__LINE__, i/j>k, 1); ! 113: iequals(__LINE__, i/j<k, 0); ! 114: iequals(__LINE__, i/j<=k, 0); ! 115: iequals(__LINE__, i/j>=k, 1); ! 116: iequals(__LINE__, i/j==k, 0); ! 117: iequals(__LINE__, i/j!=k, 1); ! 118: iequals(__LINE__, i/j&k, 0); ! 119: iequals(__LINE__, i/j^k, 7); ! 120: iequals(__LINE__, i/j|k, 7); ! 121: iequals(__LINE__, i/j&&k,1); ! 122: iequals(__LINE__, i/j||k, 1); ! 123: iequals(__LINE__, i/j?k:0, 2); ! 124: /* X/Y=Z is illegal */ ! 125: /* X/Y*=Z is illegal */ ! 126: /* X/Y/=Z is illegal */ ! 127: /* X/Y%=Z is illegal */ ! 128: /* X/Y+=Z is illegal */ ! 129: /* X/Y-=Z is illegal */ ! 130: /* X/Y<<=Z is illegal */ ! 131: /* X/Y>>=Z is illegal */ ! 132: /* X/Y&=Z is illegal */ ! 133: /* X/Y^=Z is illegal */ ! 134: /* X/Y|=Z is illegal */ ! 135: iequals(__LINE__, (i/j,k), 2); ! 136: } ! 137: ! 138: /* X % Y */ ! 139: static void p1_19() ! 140: { ! 141: int i = 17; ! 142: int j = 10; ! 143: int k = 2; ! 144: iequals(__LINE__, i%j%k, 1); ! 145: iequals(__LINE__, i%j+k, 9); ! 146: iequals(__LINE__, i%j-k, 5); ! 147: iequals(__LINE__, i%j>>k, 1); ! 148: iequals(__LINE__, i%j<<k, 28); ! 149: iequals(__LINE__, i%j>k, 1); ! 150: iequals(__LINE__, i%j<k, 0); ! 151: iequals(__LINE__, i%j<=k, 0); ! 152: iequals(__LINE__, i%j>=k, 1); ! 153: iequals(__LINE__, i%j==k, 0); ! 154: iequals(__LINE__, i%j!=k, 1); ! 155: iequals(__LINE__, i%j&k, 2); ! 156: iequals(__LINE__, i%j^k, 5); ! 157: iequals(__LINE__, i%j|k, 7); ! 158: iequals(__LINE__, i%j&&k,1); ! 159: iequals(__LINE__, i%j||k, 1); ! 160: iequals(__LINE__, i%j?k:0, 2); ! 161: /* X%Y=Z is illegal */ ! 162: /* X%Y*=Z is illegal */ ! 163: /* X%Y/=Z is illegal */ ! 164: /* X%Y%=Z is illegal */ ! 165: /* X%Y+=Z is illegal */ ! 166: /* X%Y-=Z is illegal */ ! 167: /* X%Y<<=Z is illegal */ ! 168: /* X%Y>>=Z is illegal */ ! 169: /* X%Y&=Z is illegal */ ! 170: /* X%Y^=Z is illegal */ ! 171: /* X%Y|=Z is illegal */ ! 172: iequals(__LINE__, (i%j,k), 2); ! 173: } ! 174: ! 175: /* X + Y */ ! 176: static void p1_20() ! 177: { ! 178: int i = 4; ! 179: int j = 3; ! 180: int k = 2; ! 181: iequals(__LINE__, i+j+k, 9); ! 182: iequals(__LINE__, i+j-k, 5); ! 183: iequals(__LINE__, i+j>>k, 1); ! 184: iequals(__LINE__, i+j<<k, 28); ! 185: iequals(__LINE__, i+j>k, 1); ! 186: iequals(__LINE__, i+j<k, 0); ! 187: iequals(__LINE__, i+j<=k, 0); ! 188: iequals(__LINE__, i+j>=k, 1); ! 189: iequals(__LINE__, i+j==k, 0); ! 190: iequals(__LINE__, i+j!=k, 1); ! 191: iequals(__LINE__, i+j&k, 2); ! 192: iequals(__LINE__, i+j^k, 5); ! 193: iequals(__LINE__, i+j|k, 7); ! 194: iequals(__LINE__, i+j&&k,1); ! 195: iequals(__LINE__, i+j||k, 1); ! 196: iequals(__LINE__, i+j?k:0, 2); ! 197: /* X+Y=Z is illegal */ ! 198: /* X+Y*=Z is illegal */ ! 199: /* X+Y/=Z is illegal */ ! 200: /* X+Y%=Z is illegal */ ! 201: /* X+Y+=Z is illegal */ ! 202: /* X+Y-=Z is illegal */ ! 203: /* X+Y<<=Z is illegal */ ! 204: /* X+Y>>=Z is illegal */ ! 205: /* X+Y&=Z is illegal */ ! 206: /* X+Y^=Z is illegal */ ! 207: /* X+Y|=Z is illegal */ ! 208: iequals(__LINE__, (i+j,k), 2); ! 209: } ! 210: ! 211: /* X - Y */ ! 212: static void p1_21() ! 213: { ! 214: int i = 9; ! 215: int j = 2; ! 216: int k = 2; ! 217: iequals(__LINE__, i-j-k, 5); ! 218: iequals(__LINE__, i-j>>k, 1); ! 219: iequals(__LINE__, i-j<<k, 28); ! 220: iequals(__LINE__, i-j>k, 1); ! 221: iequals(__LINE__, i-j<k, 0); ! 222: iequals(__LINE__, i-j<=k, 0); ! 223: iequals(__LINE__, i-j>=k, 1); ! 224: iequals(__LINE__, i-j==k, 0); ! 225: iequals(__LINE__, i-j!=k, 1); ! 226: iequals(__LINE__, i-j&k, 2); ! 227: iequals(__LINE__, i-j^k, 5); ! 228: iequals(__LINE__, i-j|k, 7); ! 229: iequals(__LINE__, i-j&&k,1); ! 230: iequals(__LINE__, i-j||k, 1); ! 231: iequals(__LINE__, i-j?k:0, 2); ! 232: /* X-Y=Z is illegal */ ! 233: /* X-Y*=Z is illegal */ ! 234: /* X-Y/=Z is illegal */ ! 235: /* X-Y%=Z is illegal */ ! 236: /* X-Y+=Z is illegal */ ! 237: /* X-Y-=Z is illegal */ ! 238: /* X-Y<<=Z is illegal */ ! 239: /* X-Y>>=Z is illegal */ ! 240: /* X-Y&=Z is illegal */ ! 241: /* X-Y^=Z is illegal */ ! 242: /* X-Y|=Z is illegal */ ! 243: iequals(__LINE__, (i-j,k), 2); ! 244: } ! 245: ! 246: /* X >> Y */ ! 247: static void p1_22() ! 248: { ! 249: int i = 28; ! 250: int j = 2; ! 251: int k = 2; ! 252: iequals(__LINE__, i>>j>>k, 1); ! 253: iequals(__LINE__, i>>j<<k, 28); ! 254: iequals(__LINE__, i>>j>k, 1); ! 255: iequals(__LINE__, i>>j<k, 0); ! 256: iequals(__LINE__, i>>j<=k, 0); ! 257: iequals(__LINE__, i>>j>=k, 1); ! 258: iequals(__LINE__, i>>j==k, 0); ! 259: iequals(__LINE__, i>>j!=k, 1); ! 260: iequals(__LINE__, i>>j&k, 2); ! 261: iequals(__LINE__, i>>j^k, 5); ! 262: iequals(__LINE__, i>>j|k, 7); ! 263: iequals(__LINE__, i>>j&&k,1); ! 264: iequals(__LINE__, i>>j||k, 1); ! 265: iequals(__LINE__, i>>j?k:0, 2); ! 266: /* X>>Y=Z is illegal */ ! 267: /* X>>Y*=Z is illegal */ ! 268: /* X>>Y/=Z is illegal */ ! 269: /* X>>Y%=Z is illegal */ ! 270: /* X>>Y+=Z is illegal */ ! 271: /* X>>Y-=Z is illegal */ ! 272: /* X>>Y<<=Z is illegal */ ! 273: /* X>>Y>>=Z is illegal */ ! 274: /* X>>Y&=Z is illegal */ ! 275: /* X>>Y^=Z is illegal */ ! 276: /* X>>Y|=Z is illegal */ ! 277: iequals(__LINE__, (i>>j,k), 2); ! 278: } ! 279: ! 280: /* X << Y */ ! 281: static void p1_23() ! 282: { ! 283: int i = 4; ! 284: int j = 3; ! 285: int k = 2; ! 286: iequals(__LINE__, i<<j<<k, 128); ! 287: iequals(__LINE__, i<<j>k, 1); ! 288: iequals(__LINE__, i<<j<k, 0); ! 289: iequals(__LINE__, i<<j<=k, 0); ! 290: iequals(__LINE__, i<<j>=k, 1); ! 291: iequals(__LINE__, i<<j==k, 0); ! 292: iequals(__LINE__, i<<j!=k, 1); ! 293: iequals(__LINE__, i<<j&k, 0); ! 294: iequals(__LINE__, i<<j^k, 34); ! 295: iequals(__LINE__, i<<j|k, 34); ! 296: iequals(__LINE__, i<<j&&k,1); ! 297: iequals(__LINE__, i<<j||k, 1); ! 298: iequals(__LINE__, i<<j?k:0, 2); ! 299: /* X<<Y=Z is illegal */ ! 300: /* X<<Y*=Z is illegal */ ! 301: /* X<<Y/=Z is illegal */ ! 302: /* X<<Y%=Z is illegal */ ! 303: /* X<<Y+=Z is illegal */ ! 304: /* X<<Y-=Z is illegal */ ! 305: /* X<<Y<<=Z is illegal */ ! 306: /* X<<Y>>=Z is illegal */ ! 307: /* X<<Y&=Z is illegal */ ! 308: /* X<<Y^=Z is illegal */ ! 309: /* X<<Y|=Z is illegal */ ! 310: iequals(__LINE__, (i<<j,k), 2); ! 311: } ! 312: ! 313: /* X > Y */ ! 314: static void p1_24() ! 315: { ! 316: int i = 4; ! 317: int j = 3; ! 318: int k = 2; ! 319: iequals(__LINE__, i>j>k, 0); ! 320: iequals(__LINE__, i>j<k, 1); ! 321: iequals(__LINE__, i>j<=k, 1); ! 322: iequals(__LINE__, i>j>=k, 0); ! 323: iequals(__LINE__, i>j==k, 0); ! 324: iequals(__LINE__, i>j!=k, 1); ! 325: iequals(__LINE__, i>j&k, 0); ! 326: iequals(__LINE__, i>j^k, 3); ! 327: iequals(__LINE__, i>j|k, 3); ! 328: iequals(__LINE__, i>j&&k,1); ! 329: iequals(__LINE__, i>j||k, 1); ! 330: iequals(__LINE__, i>j?k:0, 2); ! 331: /* X>Y=Z is illegal */ ! 332: /* X>Y*=Z is illegal */ ! 333: /* X>Y/=Z is illegal */ ! 334: /* X>Y%=Z is illegal */ ! 335: /* X>Y+=Z is illegal */ ! 336: /* X>Y-=Z is illegal */ ! 337: /* X>Y<<=Z is illegal */ ! 338: /* X>Y>>=Z is illegal */ ! 339: /* X>Y&=Z is illegal */ ! 340: /* X>Y^=Z is illegal */ ! 341: /* X>Y|=Z is illegal */ ! 342: iequals(__LINE__, (i>j,k), 2); ! 343: } ! 344: ! 345: /* X < Y */ ! 346: static void p1_25() ! 347: { ! 348: int i = 4; ! 349: int j = 3; ! 350: int k = 2; ! 351: iequals(__LINE__, i<j<k, 1); ! 352: iequals(__LINE__, i<j<=k, 1); ! 353: iequals(__LINE__, i<j>=k, 0); ! 354: iequals(__LINE__, i<j==k, 0); ! 355: iequals(__LINE__, i<j!=k, 1); ! 356: iequals(__LINE__, i<j&k, 0); ! 357: iequals(__LINE__, i<j^k, 2); ! 358: iequals(__LINE__, i<j|k, 2); ! 359: iequals(__LINE__, i<j&&k,0); ! 360: iequals(__LINE__, i<j||k, 1); ! 361: iequals(__LINE__, i<j?k:0, 0); ! 362: /* X<Y=Z is illegal */ ! 363: /* X<Y*=Z is illegal */ ! 364: /* X<Y/=Z is illegal */ ! 365: /* X<Y%=Z is illegal */ ! 366: /* X<Y+=Z is illegal */ ! 367: /* X<Y-=Z is illegal */ ! 368: /* X<Y<<=Z is illegal */ ! 369: /* X<Y>>=Z is illegal */ ! 370: /* X<Y&=Z is illegal */ ! 371: /* X<Y^=Z is illegal */ ! 372: /* X<Y|=Z is illegal */ ! 373: iequals(__LINE__, (i<j,k), 2); ! 374: } ! 375: ! 376: /* X <= Y */ ! 377: static void p1_26() ! 378: { ! 379: int i = 4; ! 380: int j = 3; ! 381: int k = 2; ! 382: iequals(__LINE__, i<=j<=k, 1); ! 383: iequals(__LINE__, i<=j>=k, 0); ! 384: iequals(__LINE__, i<=j==k, 0); ! 385: iequals(__LINE__, i<=j!=k, 1); ! 386: iequals(__LINE__, i<=j&k, 0); ! 387: iequals(__LINE__, i<=j^k, 2); ! 388: iequals(__LINE__, i<=j|k, 2); ! 389: iequals(__LINE__, i<=j&&k,0); ! 390: iequals(__LINE__, i<=j||k, 1); ! 391: iequals(__LINE__, i<=j?k:0, 0); ! 392: /* X<=Y=Z is illegal */ ! 393: /* X<=Y*=Z is illegal */ ! 394: /* X<=Y/=Z is illegal */ ! 395: /* X<=Y%=Z is illegal */ ! 396: /* X<=Y+=Z is illegal */ ! 397: /* X<=Y-=Z is illegal */ ! 398: /* X<=Y<<=Z is illegal */ ! 399: /* X<=Y>>=Z is illegal */ ! 400: /* X<=Y&=Z is illegal */ ! 401: /* X<=Y^=Z is illegal */ ! 402: /* X<=Y|=Z is illegal */ ! 403: iequals(__LINE__, (i<=j,k), 2); ! 404: } ! 405: ! 406: /* X >= Y */ ! 407: static void p1_27() ! 408: { ! 409: int i = 4; ! 410: int j = 3; ! 411: int k = 2; ! 412: iequals(__LINE__, i>=j>=k, 0); ! 413: iequals(__LINE__, i>=j==k, 0); ! 414: iequals(__LINE__, i>=j!=k, 1); ! 415: iequals(__LINE__, i>=j&k, 0); ! 416: iequals(__LINE__, i>=j^k, 3); ! 417: iequals(__LINE__, i>=j|k, 3); ! 418: iequals(__LINE__, i>=j&&k,1); ! 419: iequals(__LINE__, i>=j||k, 1); ! 420: iequals(__LINE__, i>=j?k:0, 2); ! 421: /* X>=Y=Z is illegal */ ! 422: /* X>=Y*=Z is illegal */ ! 423: /* X>=Y/=Z is illegal */ ! 424: /* X>=Y%=Z is illegal */ ! 425: /* X>=Y+=Z is illegal */ ! 426: /* X>=Y-=Z is illegal */ ! 427: /* X>=Y<<=Z is illegal */ ! 428: /* X>=Y>>=Z is illegal */ ! 429: /* X>=Y&=Z is illegal */ ! 430: /* X>=Y^=Z is illegal */ ! 431: /* X>=Y|=Z is illegal */ ! 432: iequals(__LINE__, (i>=j,k), 2); ! 433: } ! 434: ! 435: /* X == Y */ ! 436: static void p1_28() ! 437: { ! 438: int i = 4; ! 439: int j = 3; ! 440: int k = 2; ! 441: iequals(__LINE__, i==j==k, 0); ! 442: iequals(__LINE__, i==j!=k, 1); ! 443: iequals(__LINE__, i==j&k, 0); ! 444: iequals(__LINE__, i==j^k, 2); ! 445: iequals(__LINE__, i==j|k, 2); ! 446: iequals(__LINE__, i==j&&k,0); ! 447: iequals(__LINE__, i==j||k, 1); ! 448: iequals(__LINE__, i==j?k:0, 0); ! 449: /* X==Y=Z is illegal */ ! 450: /* X==Y*=Z is illegal */ ! 451: /* X==Y/=Z is illegal */ ! 452: /* X==Y%=Z is illegal */ ! 453: /* X==Y+=Z is illegal */ ! 454: /* X==Y-=Z is illegal */ ! 455: /* X==Y<<=Z is illegal */ ! 456: /* X==Y>>=Z is illegal */ ! 457: /* X==Y&=Z is illegal */ ! 458: /* X==Y^=Z is illegal */ ! 459: /* X==Y|=Z is illegal */ ! 460: iequals(__LINE__, (i==j,k), 2); ! 461: } ! 462: ! 463: /* X != Y */ ! 464: static void p1_29() ! 465: { ! 466: int i = 4; ! 467: int j = 3; ! 468: int k = 2; ! 469: iequals(__LINE__, i!=j!=k, 1); ! 470: iequals(__LINE__, i!=j&k, 0); ! 471: iequals(__LINE__, i!=j^k, 3); ! 472: iequals(__LINE__, i!=j|k, 3); ! 473: iequals(__LINE__, i!=j&&k,1); ! 474: iequals(__LINE__, i!=j||k, 1); ! 475: iequals(__LINE__, i!=j?k:0, 2); ! 476: /* X!=Y=Z is illegal */ ! 477: /* X!=Y*=Z is illegal */ ! 478: /* X!=Y/=Z is illegal */ ! 479: /* X!=Y%=Z is illegal */ ! 480: /* X!=Y+=Z is illegal */ ! 481: /* X!=Y-=Z is illegal */ ! 482: /* X!=Y<<=Z is illegal */ ! 483: /* X!=Y>>=Z is illegal */ ! 484: /* X!=Y&=Z is illegal */ ! 485: /* X!=Y^=Z is illegal */ ! 486: /* X!=Y|=Z is illegal */ ! 487: iequals(__LINE__, (i!=j,k), 2); ! 488: } ! 489: ! 490: /* X & Y */ ! 491: static void p1_30() ! 492: { ! 493: int i = 4; ! 494: int j = 3; ! 495: int k = 2; ! 496: iequals(__LINE__, i&j&k, 0); ! 497: iequals(__LINE__, i&j^k, 2); ! 498: iequals(__LINE__, i&j|k, 2); ! 499: iequals(__LINE__, i&j&&k,0); ! 500: iequals(__LINE__, i&j||k, 1); ! 501: iequals(__LINE__, i&j?k:0, 0); ! 502: /* X&Y=Z is illegal */ ! 503: /* X&Y*=Z is illegal */ ! 504: /* X&Y/=Z is illegal */ ! 505: /* X&Y%=Z is illegal */ ! 506: /* X&Y+=Z is illegal */ ! 507: /* X&Y-=Z is illegal */ ! 508: /* X&Y<<=Z is illegal */ ! 509: /* X&Y>>=Z is illegal */ ! 510: /* X&Y&=Z is illegal */ ! 511: /* X&Y^=Z is illegal */ ! 512: /* X&Y|=Z is illegal */ ! 513: iequals(__LINE__, (i&j,k), 2); ! 514: } ! 515: ! 516: /* X ^ Y */ ! 517: static void p1_31() ! 518: { ! 519: int i = 4; ! 520: int j = 3; ! 521: int k = 2; ! 522: iequals(__LINE__, i^j^k, 5); ! 523: iequals(__LINE__, i^j|k, 7); ! 524: iequals(__LINE__, i^j&&k,1); ! 525: iequals(__LINE__, i^j||k, 1); ! 526: iequals(__LINE__, i^j?k:0, 2); ! 527: /* X^Y=Z is illegal */ ! 528: /* X^Y*=Z is illegal */ ! 529: /* X^Y/=Z is illegal */ ! 530: /* X^Y%=Z is illegal */ ! 531: /* X^Y+=Z is illegal */ ! 532: /* X^Y-=Z is illegal */ ! 533: /* X^Y<<=Z is illegal */ ! 534: /* X^Y>>=Z is illegal */ ! 535: /* X^Y&=Z is illegal */ ! 536: /* X^Y^=Z is illegal */ ! 537: /* X^Y|=Z is illegal */ ! 538: iequals(__LINE__, (i^j,k), 2); ! 539: } ! 540: ! 541: /* X | Y */ ! 542: static void p1_32() ! 543: { ! 544: int i = 4; ! 545: int j = 3; ! 546: int k = 2; ! 547: iequals(__LINE__, i|j|k, 7); ! 548: iequals(__LINE__, i|j&&k,1); ! 549: iequals(__LINE__, i|j||k, 1); ! 550: iequals(__LINE__, i|j?k:0, 2); ! 551: /* X|Y=Z is illegal */ ! 552: /* X|Y*=Z is illegal */ ! 553: /* X|Y/=Z is illegal */ ! 554: /* X|Y%=Z is illegal */ ! 555: /* X|Y+=Z is illegal */ ! 556: /* X|Y-=Z is illegal */ ! 557: /* X|Y<<=Z is illegal */ ! 558: /* X|Y>>=Z is illegal */ ! 559: /* X|Y&=Z is illegal */ ! 560: /* X|Y^=Z is illegal */ ! 561: /* X|Y|=Z is illegal */ ! 562: iequals(__LINE__, (i|j,k), 2); ! 563: } ! 564: ! 565: /* X && Y */ ! 566: static void p1_33() ! 567: { ! 568: int i = 4; ! 569: int j = 3; ! 570: int k = 2; ! 571: iequals(__LINE__, i&&j&&k, 1); ! 572: iequals(__LINE__, i&&j||k, 1); ! 573: iequals(__LINE__, i&&j?k:0, 2); ! 574: /* X&&Y=Z is illegal */ ! 575: /* X&&Y*=Z is illegal */ ! 576: /* X&&Y/=Z is illegal */ ! 577: /* X&&Y%=Z is illegal */ ! 578: /* X&&Y+=Z is illegal */ ! 579: /* X&&Y-=Z is illegal */ ! 580: /* X&&Y<<=Z is illegal */ ! 581: /* X&&Y>>=Z is illegal */ ! 582: /* X&&Y&=Z is illegal */ ! 583: /* X&&Y^=Z is illegal */ ! 584: /* X&&Y|=Z is illegal */ ! 585: iequals(__LINE__, (i&&j,k), 2); ! 586: } ! 587: ! 588: /* X || Y */ ! 589: static void p1_34() ! 590: { ! 591: int i = 4; ! 592: int j = 3; ! 593: int k = 2; ! 594: iequals(__LINE__, i||j||k, 1); ! 595: iequals(__LINE__, i||j?k:0, 2); ! 596: /* X||Y=Z is illegal */ ! 597: /* X||Y*=Z is illegal */ ! 598: /* X||Y/=Z is illegal */ ! 599: /* X||Y%=Z is illegal */ ! 600: /* X||Y+=Z is illegal */ ! 601: /* X||Y-=Z is illegal */ ! 602: /* X||Y<<=Z is illegal */ ! 603: /* X||Y>>=Z is illegal */ ! 604: /* X||Y&=Z is illegal */ ! 605: /* X||Y^=Z is illegal */ ! 606: /* X||Y|=Z is illegal */ ! 607: iequals(__LINE__, (i||j,k), 2); ! 608: } ! 609: ! 610: /* X ? Y : Z */ ! 611: static void p1_35() ! 612: { ! 613: int i = 0; ! 614: int j = 3; ! 615: int k = 2; ! 616: iequals(__LINE__, i? j : j?k:0, 2); ! 617: /* X?:Y=Z is illegal */ ! 618: /* X?:Y*=Z is illegal */ ! 619: /* X?:Y/=Z is illegal */ ! 620: /* X?:Y%=Z is illegal */ ! 621: /* X?:Y+=Z is illegal */ ! 622: /* X?:Y-=Z is illegal */ ! 623: /* X?:Y<<=Z is illegal */ ! 624: /* X?:Y>>=Z is illegal */ ! 625: /* X?:Y&=Z is illegal */ ! 626: /* X?:Y^=Z is illegal */ ! 627: /* X?:Y|=Z is illegal */ ! 628: iequals(__LINE__, (i?j:j,k), 2); ! 629: } ! 630:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.