enddcl() { register struct Entrypoint *p; parstate = INEXEC; docommon(); doequiv(); docomleng(); for(p = entries ; p ; p = p->nextp) doentry(p); }
/* * End of declaration section of procedure. Allocate storage. */ void enddcl() { chainp p; parstate = INEXEC; docommon(); doequiv(); docomleng(); for(p = entries ; p ; p = p->entrypoint.nextp) doentry(&p->entrypoint); }
enddcl() { register struct Entrypoint *ep; parstate = INEXEC; docommon(); doequiv(); docomleng(); for(ep = entries ; ep ; ep = ep->entnextp) { doentry(ep); } }
void enddcl(Void) { register struct Entrypoint *ep; struct Entrypoint *ep0; chainp cp; extern char *err_proc; static char comblks[] = "common blocks"; err_proc = comblks; docommon(); /* Now the hash table entries for fields of common blocks have STGCOMMON, vdcldone, voffset, and varno. And the common blocks themselves have their full sizes in extleng. */ err_proc = "equivalences"; doequiv(); err_proc = comblks; docomleng(); /* This implies that entry points in the declarations are buffered in entries but not written out */ err_proc = "entries"; if (ep = ep0 = (struct Entrypoint *)revchain((chainp)entries)) { /* entries could be 0 in case of an error */ do doentry(ep); while(ep = ep->entnextp); entries = (struct Entrypoint *)revchain((chainp)ep0); } err_proc = 0; parstate = INEXEC; p1put(P1_PROCODE); freetemps(); if (earlylabs) { for(cp = earlylabs = revchain(earlylabs); cp; cp = cp->nextp) p1_label((long)cp->datap); frchain(&earlylabs); } p1_line_number(lineno); /* for files that start with a MAIN program */ /* that starts with an executable statement */ }