|
|
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: ! 11: /* ! 12: * PREC2C - ! 13: */ ! 14: #include "defs.h" ! 15: ! 16: static void p2_36(); ! 17: static void p2_37(); ! 18: static void p2_38(); ! 19: static void p2_39(); ! 20: static void p2_40(); ! 21: static void p2_41(); ! 22: static void p2_42(); ! 23: static void p2_43(); ! 24: static void p2_44(); ! 25: static void p2_45(); ! 26: static void p2_46(); ! 27: ! 28: void prec2c() ! 29: { ! 30: Filename = "prec2c.c"; ! 31: p2_36(); /* = */ ! 32: p2_37(); /* *= */ ! 33: p2_38(); /* /= */ ! 34: p2_39(); /* %= */ ! 35: p2_40(); /* += */ ! 36: p2_41(); /* -= */ ! 37: p2_42(); /* <<= */ ! 38: p2_43(); /* >>= */ ! 39: p2_44(); /* &= */ ! 40: p2_45(); /* ^= */ ! 41: p2_46(); /* |= */ ! 42: } ! 43: ! 44: /* Z op X=Y */ ! 45: static void p2_36() ! 46: { ! 47: int i = 7; ! 48: int j = 4; ! 49: int k = 2; ! 50: iequals(__LINE__, i=j=k, 2); ! 51: iequals(__LINE__, i, 2); ! 52: iequals(__LINE__, j, 2); ! 53: j = 4; ! 54: iequals(__LINE__, i*=j=k, 4); ! 55: iequals(__LINE__, i, 4); ! 56: iequals(__LINE__, j, 2); ! 57: j = 4; ! 58: iequals(__LINE__, i/=j=k, 2); ! 59: iequals(__LINE__, i, 2); ! 60: iequals(__LINE__, j, 2); ! 61: j = 4; ! 62: iequals(__LINE__, i%=j=k, 0); ! 63: iequals(__LINE__, i, 0); ! 64: iequals(__LINE__, j, 2); ! 65: j = 4; ! 66: iequals(__LINE__, i+=j=k, 2); ! 67: iequals(__LINE__, i, 2); ! 68: iequals(__LINE__, j, 2); ! 69: j = 4; ! 70: iequals(__LINE__, i-=j=k, 0); ! 71: iequals(__LINE__, i, 0); ! 72: iequals(__LINE__, j, 2); ! 73: i = 3; ! 74: j = 4; ! 75: iequals(__LINE__, i<<=j=k, 12); ! 76: iequals(__LINE__, i, 12); ! 77: iequals(__LINE__, j, 2); ! 78: j = 4; ! 79: iequals(__LINE__, i>>=j=k, 3); ! 80: iequals(__LINE__, i, 3); ! 81: iequals(__LINE__, j, 2); ! 82: j = 4; ! 83: iequals(__LINE__, i&=j=k, 2); ! 84: iequals(__LINE__, i, 2); ! 85: iequals(__LINE__, j, 2); ! 86: j = 4; ! 87: iequals(__LINE__, i^=j=k, 0); ! 88: iequals(__LINE__, i, 0); ! 89: iequals(__LINE__, j, 2); ! 90: j = 4; ! 91: iequals(__LINE__, i|=j=k, 2); ! 92: iequals(__LINE__, i, 2); ! 93: iequals(__LINE__, j, 2); ! 94: j = 4; ! 95: iequals(__LINE__, (i,j=k), 2); /* TP2 */ ! 96: iequals(__LINE__, j, 2); /* TP2 */ ! 97: } ! 98: ! 99: /* X op Y *= Z */ ! 100: static void p2_37() ! 101: { ! 102: int i = 7; ! 103: int j = 4; ! 104: int k = 2; ! 105: iequals(__LINE__, i/=j*=k, 0); ! 106: iequals(__LINE__, i, 0); ! 107: iequals(__LINE__, j, 8); ! 108: i=7,j=4; ! 109: iequals(__LINE__, i%=j*=k, 7); ! 110: iequals(__LINE__, i, 7); ! 111: iequals(__LINE__, j, 8); ! 112: i=7,j=4; ! 113: iequals(__LINE__, i+=j*=k, 15); ! 114: iequals(__LINE__, i, 15); ! 115: iequals(__LINE__, j, 8); ! 116: i=7,j=4; ! 117: iequals(__LINE__, i-=j*=k, -1); ! 118: iequals(__LINE__, i, -1); ! 119: iequals(__LINE__, j, 8); ! 120: i=7,j=4; ! 121: iequals(__LINE__, i<<=j*=k, 1792); ! 122: iequals(__LINE__, i, 1792); ! 123: iequals(__LINE__, j, 8); ! 124: j=4; ! 125: iequals(__LINE__, i>>=j*=k, 7); ! 126: iequals(__LINE__, i, 7); ! 127: iequals(__LINE__, j, 8); ! 128: i=7,j=3; ! 129: iequals(__LINE__, i&=j*=k, 6); ! 130: iequals(__LINE__, i, 6); ! 131: iequals(__LINE__, j, 6); ! 132: i=7,j=4; ! 133: iequals(__LINE__, i^=j*=k, 15); ! 134: iequals(__LINE__, i, 15); ! 135: iequals(__LINE__, j, 8); ! 136: i=7,j=4; ! 137: iequals(__LINE__, i|=j*=k, 15); ! 138: iequals(__LINE__, i, 15); ! 139: iequals(__LINE__, j, 8); ! 140: i=7,j=4; ! 141: iequals(__LINE__, (i,j*=k), 8); /* TP2 */ ! 142: iequals(__LINE__, j, 8); /* TP2 */ ! 143: } ! 144: ! 145: /* X op Y /= Z */ ! 146: static void p2_38() ! 147: { ! 148: int i = 7; ! 149: int j = 4; ! 150: int k = 2; ! 151: iequals(__LINE__, i%=j/=k, 1); ! 152: iequals(__LINE__, i, 1); ! 153: iequals(__LINE__, j, 2); ! 154: i=7,j=4; ! 155: iequals(__LINE__, i+=j/=k, 9); ! 156: iequals(__LINE__, i, 9); ! 157: iequals(__LINE__, j, 2); ! 158: i=7,j=4; ! 159: iequals(__LINE__, i-=j/=k, 5); ! 160: iequals(__LINE__, i, 5); ! 161: iequals(__LINE__, j, 2); ! 162: i=7,j=4; ! 163: iequals(__LINE__, i<<=j/=k, 28); ! 164: iequals(__LINE__, i, 28); ! 165: iequals(__LINE__, j, 2); ! 166: i=7,j=4; ! 167: iequals(__LINE__, i>>=j/=k, 1); ! 168: iequals(__LINE__, i, 1); ! 169: iequals(__LINE__, j, 2); ! 170: i=7,j=4; ! 171: iequals(__LINE__, i&=j/=k, 2); ! 172: iequals(__LINE__, i, 2); ! 173: iequals(__LINE__, j, 2); ! 174: i=7,j=4; ! 175: iequals(__LINE__, i^=j/=k, 5); ! 176: iequals(__LINE__, i, 5); ! 177: iequals(__LINE__, j, 2); ! 178: i=1,j=4; ! 179: iequals(__LINE__, i|=j/=k, 3); ! 180: iequals(__LINE__, i, 3); ! 181: iequals(__LINE__, j, 2); ! 182: i=7,j=4; ! 183: iequals(__LINE__, (i,j/=k), 2); /* TP2 */ ! 184: iequals(__LINE__, j, 2); /* TP2 */ ! 185: } ! 186: ! 187: /* X op Y %= Z */ ! 188: static void p2_39() ! 189: { ! 190: int i = 7; ! 191: int j = 4; ! 192: int k = 3; ! 193: iequals(__LINE__, i+=j%=k, 8); ! 194: iequals(__LINE__, i, 8); ! 195: iequals(__LINE__, j, 1); ! 196: i=7,j=4; ! 197: iequals(__LINE__, i-=j%=k, 6); ! 198: iequals(__LINE__, i, 6); ! 199: iequals(__LINE__, j, 1); ! 200: i=7,j=4; ! 201: iequals(__LINE__, i<<=j%=k, 14); ! 202: iequals(__LINE__, i, 14); ! 203: iequals(__LINE__, j, 1); ! 204: i=7,j=4; ! 205: iequals(__LINE__, i>>=j%=k, 3); ! 206: iequals(__LINE__, i, 3); ! 207: iequals(__LINE__, j, 1); ! 208: i=7,j=4; ! 209: iequals(__LINE__, i&=j%=k, 1); ! 210: iequals(__LINE__, i, 1); ! 211: iequals(__LINE__, j, 1); ! 212: i=7,j=4; ! 213: iequals(__LINE__, i^=j%=k, 6); ! 214: iequals(__LINE__, i, 6); ! 215: iequals(__LINE__, j, 1); ! 216: i=6,j=4; ! 217: iequals(__LINE__, i|=j%=k, 7); ! 218: iequals(__LINE__, i, 7); ! 219: iequals(__LINE__, j, 1); ! 220: i=7,j=4; ! 221: iequals(__LINE__, (i,j%=k), 1); /* TP2 */ ! 222: iequals(__LINE__, j, 1); /* TP2 */ ! 223: } ! 224: ! 225: /* X op Y += Z */ ! 226: static void p2_40() ! 227: { ! 228: int i = 7; ! 229: int j = 4; ! 230: int k = 2; ! 231: iequals(__LINE__, i-=j+=k, 1); ! 232: iequals(__LINE__, i, 1); ! 233: iequals(__LINE__, j, 6); ! 234: i=7,j=4; ! 235: iequals(__LINE__, i<<=j+=k, 448); ! 236: iequals(__LINE__, i, 448); ! 237: iequals(__LINE__, j, 6); ! 238: iequals(__LINE__, i>>=j+=k, 1); ! 239: iequals(__LINE__, i, 1); ! 240: iequals(__LINE__, j, 8); ! 241: i=7,j=4; ! 242: iequals(__LINE__, i&=j+=k, 6); ! 243: iequals(__LINE__, i, 6); ! 244: iequals(__LINE__, j, 6); ! 245: i=7,j=4; ! 246: iequals(__LINE__, i^=j+=k, 1); ! 247: iequals(__LINE__, i, 1); ! 248: iequals(__LINE__, j, 6); ! 249: i=7,j=4; ! 250: iequals(__LINE__, i|=j+=k, 7); ! 251: iequals(__LINE__, i, 7); ! 252: iequals(__LINE__, j, 6); ! 253: i=7,j=4; ! 254: iequals(__LINE__, (i,j+=k), 6); /* TP2 */ ! 255: iequals(__LINE__, j, 6); /* TP2 */ ! 256: } ! 257: ! 258: /* X op Y -= Z */ ! 259: static void p2_41() ! 260: { ! 261: int i = 7; ! 262: int j = 4; ! 263: int k = 2; ! 264: iequals(__LINE__, i<<=j-=k, 28); ! 265: iequals(__LINE__, i, 28); ! 266: iequals(__LINE__, j, 2); ! 267: i=7,j=4; ! 268: iequals(__LINE__, i>>=j-=k, 1); ! 269: iequals(__LINE__, i, 1); ! 270: iequals(__LINE__, j, 2); ! 271: i=7,j=4; ! 272: iequals(__LINE__, i&=j-=k, 2); ! 273: iequals(__LINE__, i, 2); ! 274: iequals(__LINE__, j, 2); ! 275: i=7,j=4; ! 276: iequals(__LINE__, i^=j-=k, 5); ! 277: iequals(__LINE__, i, 5); ! 278: iequals(__LINE__, j, 2); ! 279: i=2,j=4; ! 280: iequals(__LINE__, i|=j-=k, 2); ! 281: iequals(__LINE__, i, 2); ! 282: iequals(__LINE__, j, 2); ! 283: i=7,j=4; ! 284: iequals(__LINE__, (i,j-=k), 2); /* TP2 */ ! 285: iequals(__LINE__, j, 2); /* TP2 */ ! 286: } ! 287: ! 288: /* X op Y <<= Z */ ! 289: static void p2_42() ! 290: { ! 291: int i = 256; ! 292: int j = 4; ! 293: int k = 1; ! 294: iequals(__LINE__, i>>=j<<=k, 1); ! 295: iequals(__LINE__, i, 1); ! 296: iequals(__LINE__, j, 8); ! 297: i=7,j=4; ! 298: iequals(__LINE__, i&=j<<=k, 0); ! 299: iequals(__LINE__, i, 0); ! 300: iequals(__LINE__, j, 8); ! 301: i=7,j=4; ! 302: iequals(__LINE__, i^=j<<=k, 15); ! 303: iequals(__LINE__, i, 15); ! 304: iequals(__LINE__, j, 8); ! 305: i=7,j=4; ! 306: iequals(__LINE__, i|=j<<=k, 15); ! 307: iequals(__LINE__, i, 15); ! 308: iequals(__LINE__, j, 8); ! 309: i=7,j=4; ! 310: iequals(__LINE__, (i,j<<=k), 8); /* TP2 */ ! 311: iequals(__LINE__, j, 8); /* TP2 */ ! 312: } ! 313: ! 314: /* X op Y >>= Z */ ! 315: static void p2_43() ! 316: { ! 317: int i = 7; ! 318: int j = 4; ! 319: int k = 2; ! 320: iequals(__LINE__, i&=j>>=k, 1); ! 321: iequals(__LINE__, i, 1); ! 322: iequals(__LINE__, j, 1); ! 323: i=7,j=4; ! 324: iequals(__LINE__, i^=j>>=k, 6); ! 325: iequals(__LINE__, i, 6); ! 326: iequals(__LINE__, j, 1); ! 327: i=4,j=4; ! 328: iequals(__LINE__, i|=j>>=k, 5); ! 329: iequals(__LINE__, i, 5); ! 330: iequals(__LINE__, j, 1); ! 331: i=7,j=4; ! 332: iequals(__LINE__, (i,j>>=k), 1); /* TP2 */ ! 333: iequals(__LINE__, j, 1); /* TP2 */ ! 334: } ! 335: ! 336: /* X op Y &= Z */ ! 337: static void p2_44() ! 338: { ! 339: int i = 7; ! 340: int j = 3; ! 341: int k = 2; ! 342: iequals(__LINE__, i^=j&=k, 5); ! 343: iequals(__LINE__, i, 5); ! 344: iequals(__LINE__, j, 2); ! 345: i=4,j=3; ! 346: iequals(__LINE__, i|=j&=k, 6); ! 347: iequals(__LINE__, i, 6); ! 348: iequals(__LINE__, j, 2); ! 349: i=7,j=3; ! 350: iequals(__LINE__, (i,j&=k), 2); /* TP2 */ ! 351: iequals(__LINE__, j, 2); /* TP2 */ ! 352: } ! 353: ! 354: /* X op Y ^= Z */ ! 355: static void p2_45() ! 356: { ! 357: int i = 8; ! 358: int j = 4; ! 359: int k = 2; ! 360: iequals(__LINE__, i|=j^=k, 14); ! 361: iequals(__LINE__, i, 14); ! 362: iequals(__LINE__, j, 6); ! 363: iequals(__LINE__, (i,j^=k), 4); /* TP2 */ ! 364: iequals(__LINE__, j, 4); /* TP2 */ ! 365: } ! 366: ! 367: /* X op Y |= Z */ ! 368: static void p2_46() ! 369: { ! 370: int i = 7; ! 371: int j = 4; ! 372: int k = 2; ! 373: iequals(__LINE__, (i,j|=k), 6); /* TP2 */ ! 374: iequals(__LINE__, j, 6); /* TP2 */ ! 375: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.