Annotation of researchv10no/cmd/lcc/ph/prec1c.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: #include "defs.h"
                     11: 
                     12: /*
                     13:  * PREC1C -- 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_36();
                     18: static void p1_37();
                     19: static void p1_38();
                     20: static void p1_39();
                     21: static void p1_40();
                     22: static void p1_41();
                     23: static void p1_42();
                     24: static void p1_43();
                     25: static void p1_44();
                     26: static void p1_45();
                     27: static void p1_46();
                     28: static void p1_47();
                     29: 
                     30: 
                     31: void prec1c()
                     32:        {
                     33:        Filename = "prec1c.c";
                     34:        p1_36();        /* = */
                     35:        p1_37();        /* *= */
                     36:        p1_38();        /* /= */
                     37:        p1_39();        /* %= */
                     38:        p1_40();        /* += */
                     39:        p1_41();        /* -= */
                     40:        p1_42();        /* <<= */
                     41:        p1_43();        /* >>= */
                     42:        p1_44();        /* &= */
                     43:        p1_45();        /* ^= */
                     44:        p1_46();        /* |= */
                     45:        p1_47();        /* , */
                     46:        }
                     47: 
                     48: 
                     49: /*  X*=YopZ */
                     50: static void p1_36()
                     51:        {
                     52:        int i = 1;
                     53:        int j = 7;
                     54:        int k = 4;
                     55:        iequals(__LINE__, i=j*=k, 28);
                     56:        iequals(__LINE__, i, 28);
                     57:        iequals(__LINE__, j, 28);
                     58:        i = 1;
                     59:        j = 7;
                     60:        iequals(__LINE__, i=j*=k, 28);
                     61:        iequals(__LINE__, i, 28);
                     62:        iequals(__LINE__, j, 28);
                     63:        iequals(__LINE__, i=j/=k, 7);
                     64:        iequals(__LINE__, i, 7);
                     65:        iequals(__LINE__, j, 7);
                     66:        iequals(__LINE__, i=j%=k, 3);
                     67:        iequals(__LINE__, i, 3);
                     68:        iequals(__LINE__, j, 3);
                     69:        iequals(__LINE__, i=j+=k, 7);
                     70:        iequals(__LINE__, i, 7);
                     71:        iequals(__LINE__, j, 7);
                     72:        iequals(__LINE__, i=j-=k, 3);
                     73:        iequals(__LINE__, i, 3);
                     74:        iequals(__LINE__, j, 3);
                     75:        k = 1;
                     76:        iequals(__LINE__, i=j<<=k, 6);
                     77:        iequals(__LINE__, i, 6);
                     78:        iequals(__LINE__, j, 6);
                     79:        iequals(__LINE__, i=j>>=k, 3);
                     80:        iequals(__LINE__, i, 3);
                     81:        iequals(__LINE__, j, 3);
                     82:        k = 3;
                     83:        iequals(__LINE__, i=j&=k, 3);
                     84:        iequals(__LINE__, i, 3);
                     85:        iequals(__LINE__, j, 3);
                     86:        j = 0;
                     87:        iequals(__LINE__, i=j^=k, 3);
                     88:        iequals(__LINE__, i, 3);
                     89:        iequals(__LINE__, j, 3);
                     90:        k = 3;
                     91:        iequals(__LINE__, i=j|=k, 3);
                     92:        iequals(__LINE__, i, 3);
                     93:        iequals(__LINE__, j, 3);
                     94:        iequals(__LINE__, (i=j,k), 3);
                     95:        iequals(__LINE__, i, 3);
                     96:        }
                     97: 
                     98: /*  X*=YopZ */
                     99: static void p1_37()
                    100:        {
                    101:        int i = 1;
                    102:        int j = 7;
                    103:        int k = 4;
                    104:        iequals(__LINE__, i*=j*=k, 28);
                    105:        iequals(__LINE__, i, 28);
                    106:        iequals(__LINE__, j, 28);
                    107:        iequals(__LINE__, i*=j/=k, 196);
                    108:        iequals(__LINE__, i, 196);
                    109:        iequals(__LINE__, j, 7);
                    110:        iequals(__LINE__, i*=j%=k, 588);
                    111:        iequals(__LINE__, i, 588);
                    112:        iequals(__LINE__, j, 3);
                    113:        iequals(__LINE__, i*=j+=k, 4116);
                    114:        iequals(__LINE__, i, 4116);
                    115:        iequals(__LINE__, j, 7);
                    116:        iequals(__LINE__, i*=j-=k, 12348);
                    117:        iequals(__LINE__, i, 12348);
                    118:        iequals(__LINE__, j, 3);
                    119:        i = 11;
                    120:        k = 1;
                    121:        iequals(__LINE__, i*=j<<=k, 66);
                    122:        iequals(__LINE__, i, 66);
                    123:        iequals(__LINE__, j, 6);
                    124:        i = 11;
                    125:        iequals(__LINE__, i*=j>>=k, 33);
                    126:        iequals(__LINE__, i, 33);
                    127:        iequals(__LINE__, j, 3);
                    128:        i = 11;
                    129:        k = 3;
                    130:        iequals(__LINE__, i*=j&=k, 33);
                    131:        iequals(__LINE__, i, 33);
                    132:        iequals(__LINE__, j, 3);
                    133:        i = 11;
                    134:        j = 0;
                    135:        iequals(__LINE__, i*=j^=k, 33);
                    136:        iequals(__LINE__, i, 33);
                    137:        iequals(__LINE__, j, 3);
                    138:        i = 11;
                    139:        k = 3;
                    140:        iequals(__LINE__, i*=j|=k, 33);
                    141:        iequals(__LINE__, i, 33);
                    142:        iequals(__LINE__, j, 3);
                    143:        i = 11;
                    144:        iequals(__LINE__, (i*=j,k), 3);
                    145:        iequals(__LINE__, i, 33);
                    146:        }
                    147: 
                    148: /*  X/=YopZ */
                    149: static void p1_38()
                    150:        {
                    151:        int i = 11;
                    152:        int j = 8;
                    153:        int k = 4;
                    154:        iequals(__LINE__, i/=j/=k, 5);
                    155:        iequals(__LINE__, i, 5);
                    156:        iequals(__LINE__, j, 2);
                    157:        i = 11;
                    158:        j = 7;
                    159:        iequals(__LINE__, i/=j%=k, 3);
                    160:        iequals(__LINE__, i, 3);
                    161:        iequals(__LINE__, j, 3);
                    162:        i = 11;
                    163:        iequals(__LINE__, i/=j-=k, -11);
                    164:        iequals(__LINE__, i, -11);
                    165:        iequals(__LINE__, j, -1);
                    166:        i = 11;
                    167:        k = 1;
                    168:        j = 3;
                    169:        iequals(__LINE__, i/=j<<=k, 1);
                    170:        iequals(__LINE__, i, 1);
                    171:        iequals(__LINE__, j, 6);
                    172:        i = 11;
                    173:        iequals(__LINE__, i/=j>>=k, 3);
                    174:        iequals(__LINE__, i, 3);
                    175:        iequals(__LINE__, j, 3);
                    176:        i = 11;
                    177:        k = 3;
                    178:        iequals(__LINE__, i/=j&=k, 3);
                    179:        iequals(__LINE__, i, 3);
                    180:        iequals(__LINE__, j, 3);
                    181:        i = 11;
                    182:        j = 0;
                    183:        iequals(__LINE__, i/=j^=k, 3);
                    184:        iequals(__LINE__, i, 3);
                    185:        iequals(__LINE__, j, 3);
                    186:        i = 11;
                    187:        k = 3;
                    188:        iequals(__LINE__, i/=j|=k, 3);
                    189:        iequals(__LINE__, i, 3);
                    190:        iequals(__LINE__, j, 3);
                    191:        i = 11;
                    192:        iequals(__LINE__, (i/=j,k), 3);
                    193:        iequals(__LINE__, i, 3);
                    194:        }
                    195: 
                    196: /*  X%=YopZ */
                    197: static void p1_39()
                    198:        {
                    199:        int i = 11;
                    200:        int j = 7;
                    201:        int k = 4;
                    202:        iequals(__LINE__, i%=j%=k, 2);
                    203:        iequals(__LINE__, i, 2);
                    204:        iequals(__LINE__, j, 3);
                    205:        i = 11;
                    206:        iequals(__LINE__, i%=j+=k, 4);
                    207:        iequals(__LINE__, i, 4);
                    208:        iequals(__LINE__, j, 7);
                    209:        i = 11;
                    210:        iequals(__LINE__, i%=j-=k, 2);
                    211:        iequals(__LINE__, i, 2);
                    212:        iequals(__LINE__, j, 3);
                    213:        i = 11;
                    214:        k = 1;
                    215:        iequals(__LINE__, i%=j<<=k, 5);
                    216:        iequals(__LINE__, i, 5);
                    217:        iequals(__LINE__, j, 6);
                    218:        i = 11;
                    219:        iequals(__LINE__, i%=j>>=k, 2);
                    220:        iequals(__LINE__, i, 2);
                    221:        iequals(__LINE__, j, 3);
                    222:        i = 11;
                    223:        k = 3;
                    224:        iequals(__LINE__, i%=j&=k, 2);
                    225:        iequals(__LINE__, i, 2);
                    226:        iequals(__LINE__, j, 3);
                    227:        i = 11;
                    228:        j = 0;
                    229:        iequals(__LINE__, i%=j^=k, 2);
                    230:        iequals(__LINE__, i, 2);
                    231:        iequals(__LINE__, j, 3);
                    232:        i = 11;
                    233:        k = 3;
                    234:        iequals(__LINE__, i%=j|=k, 2);
                    235:        iequals(__LINE__, i, 2);
                    236:        iequals(__LINE__, j, 3);
                    237:        i = 11;
                    238:        iequals(__LINE__, (i%=j,k), 3);
                    239:        iequals(__LINE__, i, 2);
                    240:        }
                    241: 
                    242: /*  X+=YopZ */
                    243: static void p1_40()
                    244:        {
                    245:        int i = -6;
                    246:        int j = 3;
                    247:        int k = 4;
                    248:        iequals(__LINE__, i+=j+=k, 1);
                    249:        iequals(__LINE__, i, 1);
                    250:        iequals(__LINE__, j, 7);
                    251:        iequals(__LINE__, i+=j-=k, 4);
                    252:        iequals(__LINE__, i, 4);
                    253:        iequals(__LINE__, j, 3);
                    254:        k = 1;
                    255:        iequals(__LINE__, i+=j<<=k, 10);
                    256:        iequals(__LINE__, i, 10);
                    257:        iequals(__LINE__, j, 6);
                    258:        iequals(__LINE__, i+=j>>=k, 13);
                    259:        iequals(__LINE__, i, 13);
                    260:        iequals(__LINE__, j, 3);
                    261:        k = 3;
                    262:        iequals(__LINE__, i+=j&=k, 16);
                    263:        iequals(__LINE__, i, 16);
                    264:        iequals(__LINE__, j, 3);
                    265:        iequals(__LINE__, i+=j^=k, 16);
                    266:        iequals(__LINE__, i, 16);
                    267:        iequals(__LINE__, j, 0);
                    268:        k = 3;
                    269:        iequals(__LINE__, i+=j|=k, 19);
                    270:        iequals(__LINE__, i, 19);
                    271:        iequals(__LINE__, j, 3);
                    272:        iequals(__LINE__, (i+=j,k), k);
                    273:        iequals(__LINE__, i, 22);
                    274:        }
                    275: 
                    276: /*  X-=YopZ */
                    277: static void p1_41()
                    278:        {
                    279:        int i = 21;
                    280:        int j = 7;
                    281:        int k = 4;
                    282:        iequals(__LINE__, i-=j-=k, 18);
                    283:        iequals(__LINE__, i, 18);
                    284:        iequals(__LINE__, j, 3);
                    285:        k = 1;
                    286:        iequals(__LINE__, i-=j<<=k, 12);
                    287:        iequals(__LINE__, i, 12);
                    288:        iequals(__LINE__, j, 6);
                    289:        iequals(__LINE__, i-=j>>=k, 9);
                    290:        iequals(__LINE__, i, 9);
                    291:        iequals(__LINE__, j, 3);
                    292:        k = 3;
                    293:        iequals(__LINE__, i-=j&=k, 6);
                    294:        iequals(__LINE__, i, 6);
                    295:        iequals(__LINE__, j, 3);
                    296:        iequals(__LINE__, i-=j^=k, 6);
                    297:        iequals(__LINE__, i, 6);
                    298:        iequals(__LINE__, j, 0);
                    299:        k = 3;
                    300:        iequals(__LINE__, i-=j|=k, 3);
                    301:        iequals(__LINE__, i, 3);
                    302:        iequals(__LINE__, j, 3);
                    303:        iequals(__LINE__, (i-=j,k), k);
                    304:        iequals(__LINE__, i, 0);
                    305:        }
                    306: 
                    307: /*  X<<=YopZ */
                    308: static void p1_42()
                    309:        {
                    310:        int i = 1;
                    311:        int j = 2;
                    312:        int k = 1;
                    313:        iequals(__LINE__, i<<=j<<=k, 16);
                    314:        iequals(__LINE__, i, 16);
                    315:        iequals(__LINE__, j, 4);
                    316:        j = 2;
                    317:        iequals(__LINE__, i<<=j>>=k, 32);
                    318:        iequals(__LINE__, i, 32);
                    319:        iequals(__LINE__, j, 1);
                    320:        iequals(__LINE__, i<<=j&=k, 64);
                    321:        iequals(__LINE__, i, 64);
                    322:        iequals(__LINE__, j, 1);
                    323:        j = 0;
                    324:        iequals(__LINE__, i<<=j^=k, 128);
                    325:        iequals(__LINE__, i, 128);
                    326:        iequals(__LINE__, j, 1);
                    327:        iequals(__LINE__, i<<=j|=k, 256);
                    328:        iequals(__LINE__, i, 256);
                    329:        iequals(__LINE__, j, 1);
                    330:        iequals(__LINE__, (i<<=j,k), k);
                    331:        iequals(__LINE__, i, 512);
                    332:        }
                    333: 
                    334: /*  X>>=YopZ */
                    335: static void p1_43()
                    336:        {
                    337:        int i = 9;
                    338:        int j = 3;
                    339:        int k = 1;
                    340:        iequals(__LINE__, i>>=j>>=k, 4);
                    341:        iequals(__LINE__, i, 4);
                    342:        iequals(__LINE__, j, 1);
                    343:        k = 7;
                    344:        iequals(__LINE__, i>>=j&=k, 2);
                    345:        iequals(__LINE__, i, 2);
                    346:        iequals(__LINE__, j, 1);
                    347:        i = 0x100;
                    348:        iequals(__LINE__, i>>=j^=k, 4);
                    349:        iequals(__LINE__, i, 4);
                    350:        iequals(__LINE__, j, 6);
                    351:        j = 0; k = 2;
                    352:        iequals(__LINE__, i>>=j|=k, 1);
                    353:        iequals(__LINE__, i, 1);
                    354:        iequals(__LINE__, j, 2);
                    355:        i = 7;
                    356:        iequals(__LINE__, (i>>=j,k), k);
                    357:        iequals(__LINE__, i, 1);
                    358:        }
                    359: 
                    360: /*  X&=YopZ */
                    361: static void p1_44()
                    362:        {
                    363:        int i = 7;
                    364:        int j = 2;
                    365:        int k = 3;
                    366:        iequals(__LINE__, i&=j&=k, 2);
                    367:        iequals(__LINE__, i, 2);
                    368:        iequals(__LINE__, j, 2);
                    369:        i = 7;
                    370:        iequals(__LINE__, i&=j^=k, 1);
                    371:        iequals(__LINE__, i, 1);
                    372:        iequals(__LINE__, j, 1);
                    373:        k = 4;
                    374:        iequals(__LINE__, i&=j|=k, 1);
                    375:        iequals(__LINE__, i, 1);
                    376:        iequals(__LINE__, j, 5);
                    377:        i = 7;
                    378:        iequals(__LINE__, (i&=j,k), k);
                    379:        iequals(__LINE__, i, 5);
                    380:        }
                    381: 
                    382: /*  X^=YopZ */
                    383: static void p1_45()
                    384:        {
                    385:        int i = 2;
                    386:        int j = 2;
                    387:        int k = 3;
                    388:        iequals(__LINE__, i^=j^=k, 3);
                    389:        iequals(__LINE__, i, 3);
                    390:        iequals(__LINE__, j, 1);
                    391:        k = 4;
                    392:        iequals(__LINE__, i^=j|=k, 6);
                    393:        iequals(__LINE__, i, 6);
                    394:        iequals(__LINE__, j, 5);
                    395:        iequals(__LINE__, (i^=j,k), 4);
                    396:        iequals(__LINE__, i, 3);
                    397:        }
                    398: 
                    399: /*  X|=YopZ */
                    400: static void p1_46()
                    401:        {
                    402:        int i = 1;
                    403:        int j = 2;
                    404:        int k = 4;
                    405:        iequals(__LINE__, i|=j|=k, 7);
                    406:        iequals(__LINE__, i, 7);
                    407:        iequals(__LINE__, j, 6);
                    408:        iequals(__LINE__, (i|=j,k), 4);
                    409:        iequals(__LINE__, i, 7);
                    410:        }
                    411: 
                    412: /*  X,YopZ */
                    413: static void p1_47()
                    414:        {
                    415:        int i = 1;
                    416:        int j = 2;
                    417:        int k = 3;
                    418:        iequals(__LINE__, (i,j,k), k);
                    419:        }

unix.superglobalmegacorp.com

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