Annotation of researchv10dc/cmd/lcc/ph/prec2c.c, revision 1.1.1.1

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:        }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.