2 !!DESCRIPTION!! C-Manual Chapter 7.15: Comma operator
3 !!ORIGIN!! LCC 4.1 Testsuite
4 !!LICENCE!! own, freely distributeable for non-profit. read CPYRIGHT.LCC
10 int cbits; /* No. of bits per char */
12 int sbits; /* short */
14 int ubits; /* unsigned */
15 int fbits; /* float */
16 int dbits; /* double */
18 float fprec; /* Smallest number that can be */
19 float dprec; /* significantly added to 1. */
21 int flgs; /* Print return codes, by section */
22 int flgm; /* Announce machine dependencies */
23 int flgd; /* give explicit diagnostics */
24 int flgl; /* Report local return codes. */
25 int rrc; /* recent return code */
26 int crc; /* Cumulative return code */
27 char rfs[8]; /* Return from section */
31 int ubits; /* unsigned */
32 int fbits; /* float */
33 int dbits; /* double */
35 float fprec; /* Smallest number that can be */
36 float dprec; /* significantly added to 1. */
38 int flgs; /* Print return codes, by section */
39 int flgm; /* Announce machine dependencies */
40 int flgd; /* give explicit diagnostics */
41 int flgl; /* Report local return codes. */
42 int rrc; /* recent return code */
43 int crc; /* Cumulative return code */
44 char rfs[8]; /* Return from section */
46 /*#include "cq26.c"*/ /* hardware check */
47 #ifdef NO_IMPLICIT_FUNC_PROTOTYPES
48 s715f(int x,int y,int z);
51 #ifndef NO_OLD_FUNC_DECL
52 s715(pd0) /* 7.15 Comma operator */
56 int s715(struct defs *pd0) {
58 static char s715er[] = "s715,er%d\n";
59 static char qs715[8] = "s715 ";
67 while (*pt++ = *ps++);
69 /* A pair of expressions separated by a comma is
70 evaluated left to right and the value of the left
71 expression is discarded.
74 if( i++,i++,i++,i++,++i != 6 ){
75 if(pd0->flgd != 0) printf(s715er,1);
79 /* In contexts where the comma is given a special mean-
80 ing, for example in a list of actual arguments to
81 functions (sic) and lists of initializers, the comma
82 operator as described in this section can only appear
83 in parentheses; for example
87 has three arguments, the second of which has the
91 if(s715f(a, (t=3, t+2), c) != 5){
92 if(pd0->flgd != 0) printf(s715er,2);
103 /*********************************************************************************************
104 the main loop that launches the sections
105 *********************************************************************************************/
107 #ifndef NO_TYPELESS_STRUCT_PTR
108 int section(int j,struct* pd0){
110 int section(int j,void* pd0){
113 /*case 0: return s26(pd0);*/
114 case 0: return s715(pd0);
118 #define cq_sections 1
121 C REFERENCE MANUAL (main)
124 #ifndef NO_OLD_FUNC_DECL
130 int main(int n,char **args) {
134 static struct defs d0, *pd0;
136 d0.flgs = 1; /* These flags dictate */
137 d0.flgm = 1; /* the verbosity of */
138 d0.flgd = 1; /* the program. */
143 for (j=0; j<cq_sections; j++) {
144 d0.rrc=section(j,pd0);
145 d0.crc=d0.crc+d0.rrc;
146 if(d0.flgs != 0) printf("Section %s returned %d.\n",d0.rfs,d0.rrc);
149 if(d0.crc == 0) printf("\nNo errors detected.\n");
150 else printf("\nFailed.\n");