2 !!DESCRIPTION!! C-Manual Chapter 7.14: assignment operators
3 !!ORIGIN!! LCC 4.1 Testsuite
4 !!LICENCE!! own, freely distributeable for non-profit. read CPYRIGHT.LCC
8 int cbits; /* No. of bits per char */
10 int sbits; /* short */
12 int ubits; /* unsigned */
13 int fbits; /* float */
14 int dbits; /* double */
16 float fprec; /* Smallest number that can be */
17 float dprec; /* significantly added to 1. */
19 int flgs; /* Print return codes, by section */
20 int flgm; /* Announce machine dependencies */
21 int flgd; /* give explicit diagnostics */
22 int flgl; /* Report local return codes. */
23 int rrc; /* recent return code */
24 int crc; /* Cumulative return code */
25 char rfs[8]; /* Return from section */
29 int ubits; /* unsigned */
30 int fbits; /* float */
31 int dbits; /* double */
33 float fprec; /* Smallest number that can be */
34 float dprec; /* significantly added to 1. */
36 int flgs; /* Print return codes, by section */
37 int flgm; /* Announce machine dependencies */
38 int flgd; /* give explicit diagnostics */
39 int flgl; /* Report local return codes. */
40 int rrc; /* recent return code */
41 int crc; /* Cumulative return code */
42 char rfs[8]; /* Return from section */
44 #ifndef NO_OLD_FUNC_DECL
45 s714(pd0) /* 7.14 Assignment operators */
49 int s714(struct defs *pd0){
51 static char f[] = "Local error %d.\n";
52 static char s714er[] = "s714,er%d\n";
53 static char qs714[8] = "s714 ";
54 register int prlc, lrc;
74 while (*pt++ = *ps++);
76 /* This section tests the assignment operators.
78 It is an exhaustive test of all assignment statements
83 where vl and vr are variables from the set
84 {char,short,int,long,unsigned,float,double} and op is
85 one of the assignment operators. There are 395 such
88 The initial values for the variables have been chosen
89 so that both the initial values and the results will
90 "fit" in just about any implementation, and that the re-
91 sults will be such that they test for the proper form-
92 ation of composite operators, rather than checking for
93 the valid operation of those operators' components.
94 For example, in checking >>=, we want to verify that
95 a right shift and a move take place, rather than
96 whether or not there may be some peculiarities about
97 the right shift. Such tests have been made previously,
98 and to repeat them here would be to throw out a red
101 The table below lists the operators, assignment targets,
102 initial values for left and right operands, and the
103 expected values of the results.
105 = += -= *= /= %= >>= <<= &= ^= |=
106 char 2 7 3 10 2 1 1 20 8 6 14
107 short 2 7 3 10 2 1 1 20 8 6 14
108 int 2 7 3 10 2 1 1 20 8 6 14
109 long 2 7 3 10 2 1 1 20 8 6 14
110 unsigned 2 7 3 10 2 1 1 20 8 6 14
111 float 2 7 3 10 2.5 | |
112 double 2 7 3 10 2.5 | |
114 initial (5,2) | (5,2) | (12,10)
116 The following machine-generated program reflects the
117 tests described in the table.
124 if(prlc) printf(f,lrc);
130 if(prlc) printf(f,lrc);
136 if(prlc) printf(f,lrc);
142 if(prlc) printf(f,lrc);
148 if(prlc) printf(f,lrc);
154 if(prlc) printf(f,lrc);
160 if(prlc) printf(f,lrc);
166 if(prlc) printf(f,lrc);
172 if(prlc) printf(f,lrc);
178 if(prlc) printf(f,lrc);
184 if(prlc) printf(f,lrc);
190 if(prlc) printf(f,lrc);
196 if(prlc) printf(f,lrc);
202 if(prlc) printf(f,lrc);
208 if(prlc) printf(f,lrc);
214 if(prlc) printf(f,lrc);
220 if(prlc) printf(f,lrc);
226 if(prlc) printf(f,lrc);
232 if(prlc) printf(f,lrc);
238 if(prlc) printf(f,lrc);
244 if(prlc) printf(f,lrc);
250 if(prlc) printf(f,lrc);
256 if(prlc) printf(f,lrc);
262 if(prlc) printf(f,lrc);
268 if(prlc) printf(f,lrc);
274 if(prlc) printf(f,lrc);
280 if(prlc) printf(f,lrc);
286 if(prlc) printf(f,lrc);
292 if(prlc) printf(f,lrc);
298 if(prlc) printf(f,lrc);
304 if(prlc) printf(f,lrc);
310 if(prlc) printf(f,lrc);
316 if(prlc) printf(f,lrc);
322 if(prlc) printf(f,lrc);
328 if(prlc) printf(f,lrc);
334 if(prlc) printf(f,lrc);
340 if(prlc) printf(f,lrc);
346 if(prlc) printf(f,lrc);
352 if(prlc) printf(f,lrc);
358 if(prlc) printf(f,lrc);
364 if(prlc) printf(f,lrc);
370 if(prlc) printf(f,lrc);
376 if(prlc) printf(f,lrc);
382 if(prlc) printf(f,lrc);
388 if(prlc) printf(f,lrc);
394 if(prlc) printf(f,lrc);
400 if(prlc) printf(f,lrc);
406 if(prlc) printf(f,lrc);
412 if(prlc) printf(f,lrc);
418 if(prlc) printf(f,lrc);
424 if(prlc) printf(f,lrc);
430 if(prlc) printf(f,lrc);
436 if(prlc) printf(f,lrc);
442 if(prlc) printf(f,lrc);
448 if(prlc) printf(f,lrc);
454 if(prlc) printf(f,lrc);
460 if(prlc) printf(f,lrc);
466 if(prlc) printf(f,lrc);
472 if(prlc) printf(f,lrc);
478 if(prlc) printf(f,lrc);
484 if(prlc) printf(f,lrc);
490 if(prlc) printf(f,lrc);
496 if(prlc) printf(f,lrc);
502 if(prlc) printf(f,lrc);
508 if(prlc) printf(f,lrc);
514 if(prlc) printf(f,lrc);
520 if(prlc) printf(f,lrc);
526 if(prlc) printf(f,lrc);
532 if(prlc) printf(f,lrc);
538 if(prlc) printf(f,lrc);
544 if(prlc) printf(f,lrc);
550 if(prlc) printf(f,lrc);
556 if(prlc) printf(f,lrc);
562 if(prlc) printf(f,lrc);
568 if(prlc) printf(f,lrc);
574 if(prlc) printf(f,lrc);
580 if(prlc) printf(f,lrc);
586 if(prlc) printf(f,lrc);
592 if(prlc) printf(f,lrc);
598 if(prlc) printf(f,lrc);
604 if(prlc) printf(f,lrc);
610 if(prlc) printf(f,lrc);
616 if(prlc) printf(f,lrc);
622 if(prlc) printf(f,lrc);
628 if(prlc) printf(f,lrc);
634 if(prlc) printf(f,lrc);
640 if(prlc) printf(f,lrc);
646 if(prlc) printf(f,lrc);
652 if(prlc) printf(f,lrc);
658 if(prlc) printf(f,lrc);
664 if(prlc) printf(f,lrc);
670 if(prlc) printf(f,lrc);
676 if(prlc) printf(f,lrc);
682 if(prlc) printf(f,lrc);
688 if(prlc) printf(f,lrc);
694 if(prlc) printf(f,lrc);
700 if(prlc) printf(f,lrc);
706 if(prlc) printf(f,lrc);
712 if(prlc) printf(f,lrc);
718 if(prlc) printf(f,lrc);
724 if(prlc) printf(f,lrc);
730 if(prlc) printf(f,lrc);
736 if(prlc) printf(f,lrc);
742 if(prlc) printf(f,lrc);
748 if(prlc) printf(f,lrc);
754 if(prlc) printf(f,lrc);
760 if(prlc) printf(f,lrc);
766 if(prlc) printf(f,lrc);
772 if(prlc) printf(f,lrc);
778 if(prlc) printf(f,lrc);
784 if(prlc) printf(f,lrc);
790 if(prlc) printf(f,lrc);
796 if(prlc) printf(f,lrc);
802 if(prlc) printf(f,lrc);
808 if(prlc) printf(f,lrc);
814 if(prlc) printf(f,lrc);
820 if(prlc) printf(f,lrc);
826 if(prlc) printf(f,lrc);
832 if(prlc) printf(f,lrc);
838 if(prlc) printf(f,lrc);
844 if(prlc) printf(f,lrc);
850 if(prlc) printf(f,lrc);
856 if(prlc) printf(f,lrc);
862 if(prlc) printf(f,lrc);
868 if(prlc) printf(f,lrc);
874 if(prlc) printf(f,lrc);
880 if(prlc) printf(f,lrc);
886 if(prlc) printf(f,lrc);
892 if(prlc) printf(f,lrc);
898 if(prlc) printf(f,lrc);
904 if(prlc) printf(f,lrc);
910 if(prlc) printf(f,lrc);
916 if(prlc) printf(f,lrc);
922 if(prlc) printf(f,lrc);
928 if(prlc) printf(f,lrc);
934 if(prlc) printf(f,lrc);
940 if(prlc) printf(f,lrc);
946 if(prlc) printf(f,lrc);
952 if(prlc) printf(f,lrc);
958 if(prlc) printf(f,lrc);
964 if(prlc) printf(f,lrc);
970 if(prlc) printf(f,lrc);
976 if(prlc) printf(f,lrc);
982 if(prlc) printf(f,lrc);
988 if(prlc) printf(f,lrc);
994 if(prlc) printf(f,lrc);
1000 if(prlc) printf(f,lrc);
1006 if(prlc) printf(f,lrc);
1012 if(prlc) printf(f,lrc);
1018 if(prlc) printf(f,lrc);
1024 if(prlc) printf(f,lrc);
1030 if(prlc) printf(f,lrc);
1036 if(prlc) printf(f,lrc);
1042 if(prlc) printf(f,lrc);
1048 if(prlc) printf(f,lrc);
1054 if(prlc) printf(f,lrc);
1060 if(prlc) printf(f,lrc);
1066 if(prlc) printf(f,lrc);
1072 if(prlc) printf(f,lrc);
1078 if(prlc) printf(f,lrc);
1084 if(prlc) printf(f,lrc);
1090 if(prlc) printf(f,lrc);
1096 if(prlc) printf(f,lrc);
1102 if(prlc) printf(f,lrc);
1108 if(prlc) printf(f,lrc);
1114 if(prlc) printf(f,lrc);
1120 if(prlc) printf(f,lrc);
1126 if(prlc) printf(f,lrc);
1132 if(prlc) printf(f,lrc);
1138 if(prlc) printf(f,lrc);
1144 if(prlc) printf(f,lrc);
1150 if(prlc) printf(f,lrc);
1156 if(prlc) printf(f,lrc);
1162 if(prlc) printf(f,lrc);
1168 if(prlc) printf(f,lrc);
1174 if(prlc) printf(f,lrc);
1180 if(prlc) printf(f,lrc);
1186 if(prlc) printf(f,lrc);
1192 if(prlc) printf(f,lrc);
1198 if(prlc) printf(f,lrc);
1204 if(prlc) printf(f,lrc);
1210 if(prlc) printf(f,lrc);
1216 if(prlc) printf(f,lrc);
1222 if(prlc) printf(f,lrc);
1228 if(prlc) printf(f,lrc);
1234 if(prlc) printf(f,lrc);
1240 if(prlc) printf(f,lrc);
1246 if(prlc) printf(f,lrc);
1252 if(prlc) printf(f,lrc);
1258 if(prlc) printf(f,lrc);
1264 if(prlc) printf(f,lrc);
1270 if(prlc) printf(f,lrc);
1276 if(prlc) printf(f,lrc);
1282 if(prlc) printf(f,lrc);
1288 if(prlc) printf(f,lrc);
1294 if(prlc) printf(f,lrc);
1300 if(prlc) printf(f,lrc);
1306 if(prlc) printf(f,lrc);
1312 if(prlc) printf(f,lrc);
1318 if(prlc) printf(f,lrc);
1324 if(prlc) printf(f,lrc);
1330 if(prlc) printf(f,lrc);
1336 if(prlc) printf(f,lrc);
1342 if(prlc) printf(f,lrc);
1348 if(prlc) printf(f,lrc);
1354 if(prlc) printf(f,lrc);
1360 if(prlc) printf(f,lrc);
1366 if(prlc) printf(f,lrc);
1372 if(prlc) printf(f,lrc);
1378 if(prlc) printf(f,lrc);
1384 if(prlc) printf(f,lrc);
1390 if(prlc) printf(f,lrc);
1396 if(prlc) printf(f,lrc);
1402 if(prlc) printf(f,lrc);
1408 if(prlc) printf(f,lrc);
1414 if(prlc) printf(f,lrc);
1420 if(prlc) printf(f,lrc);
1426 if(prlc) printf(f,lrc);
1432 if(prlc) printf(f,lrc);
1438 if(prlc) printf(f,lrc);
1444 if(prlc) printf(f,lrc);
1450 if(prlc) printf(f,lrc);
1456 if(prlc) printf(f,lrc);
1462 if(prlc) printf(f,lrc);
1468 if(prlc) printf(f,lrc);
1474 if(prlc) printf(f,lrc);
1480 if(prlc) printf(f,lrc);
1486 if(prlc) printf(f,lrc);
1492 if(prlc) printf(f,lrc);
1498 if(prlc) printf(f,lrc);
1504 if(prlc) printf(f,lrc);
1512 if(prlc) printf(f,lrc);
1518 if(prlc) printf(f,lrc);
1524 if(prlc) printf(f,lrc);
1530 if(prlc) printf(f,lrc);
1536 if(prlc) printf(f,lrc);
1542 if(prlc) printf(f,lrc);
1548 if(prlc) printf(f,lrc);
1554 if(prlc) printf(f,lrc);
1560 if(prlc) printf(f,lrc);
1566 if(prlc) printf(f,lrc);
1572 if(prlc) printf(f,lrc);
1578 if(prlc) printf(f,lrc);
1584 if(prlc) printf(f,lrc);
1590 if(prlc) printf(f,lrc);
1597 if(prlc) printf(f,lrc);
1603 if(prlc) printf(f,lrc);
1609 if(prlc) printf(f,lrc);
1615 if(prlc) printf(f,lrc);
1621 if(prlc) printf(f,lrc);
1627 if(prlc) printf(f,lrc);
1633 if(prlc) printf(f,lrc);
1639 if(prlc) printf(f,lrc);
1645 if(prlc) printf(f,lrc);
1651 if(prlc) printf(f,lrc);
1657 if(prlc) printf(f,lrc);
1663 if(prlc) printf(f,lrc);
1669 if(prlc) printf(f,lrc);
1675 if(prlc) printf(f,lrc);
1682 if(prlc) printf(f,lrc);
1688 if(prlc) printf(f,lrc);
1694 if(prlc) printf(f,lrc);
1700 if(prlc) printf(f,lrc);
1706 if(prlc) printf(f,lrc);
1712 if(prlc) printf(f,lrc);
1718 if(prlc) printf(f,lrc);
1724 if(prlc) printf(f,lrc);
1730 if(prlc) printf(f,lrc);
1736 if(prlc) printf(f,lrc);
1741 if(pd0->flgd != 0) printf(s714er,1);
1746 /*********************************************************************************************
1747 the main loop that launches the sections
1748 *********************************************************************************************/
1750 #ifndef NO_TYPELESS_STRUCT_PTR
1751 int section(int j,struct* pd0){
1753 int section(int j,void* pd0){
1756 case 0: return s714(pd0);
1760 #define cq_sections 1
1763 C REFERENCE MANUAL (main)
1766 #ifndef NO_OLD_FUNC_DECL
1772 int main(int n,char **args) {
1776 static struct defs d0, *pd0;
1778 d0.flgs = 1; /* These flags dictate */
1779 d0.flgm = 1; /* the verbosity of */
1780 d0.flgd = 1; /* the program. */
1785 for (j=0; j<cq_sections; j++) {
1786 d0.rrc=section(j,pd0);
1787 d0.crc=d0.crc+d0.rrc;
1788 if(d0.flgs != 0) printf("Section %s returned %d.\n",d0.rfs,d0.rrc);
1791 if(d0.crc == 0) printf("\nNo errors detected.\n");
1792 else printf("\nFailed.\n");