endproc() { struct Labelblock *lp; if(parstate < INDATA) enddcl(); if(ctlstack >= ctls) err("DO loop or BLOCK IF not closed"); for(lp = labeltab ; lp < labtabend ; ++lp) if(lp->stateno!=0 && lp->labdefined==NO) errstr("missing statement number %s", convic(lp->stateno) ); if (optimflag) optimize(); outiodata(); epicode(); procode(); donmlist(); dobss(); #if FAMILY == PCC putbracket(); #endif fixlwm(); procinit(); /* clean up for next procedure */ }
void endproc(Void) { struct Labelblock *lp; Extsym *ext; if(parstate < INDATA) enddcl(); if(ctlstack >= ctls) err("DO loop or BLOCK IF not closed"); for(lp = labeltab ; lp < labtabend ; ++lp) if(lp->stateno!=0 && lp->labdefined==NO) errstr("missing statement label %s", convic(lp->stateno) ); /* Save copies of the common variables in extptr -> allextp */ for (ext = extsymtab; ext < nextext; ext++) if (ext -> extstg == STGCOMMON && ext -> extp) { extern int usedefsforcommon; /* Write out the abbreviations for common block reference */ copy_data (ext -> extp); if (usedefsforcommon) { wr_abbrevs (c_file, 1, ext -> extp); ext -> used_here = 1; } else ext -> extp = CHNULL; } if (nentry > 1) fix_entry_returns(); epicode(); donmlist(); dobss(); start_formatting (); if (nentry > 1) putentries(c_file); zap_changes(); procinit(); /* clean up for next procedure */ }
void endproc() { struct labelblock *lp; if(parstate < INDATA) enddcl(); if(ctlstack >= ctls) err("DO loop or BLOCK IF not closed"); for(lp = labeltab ; lp < labtabend ; ++lp) if(lp->stateno!=0 && lp->labdefined==NO) err1("missing statement number %s", convic(lp->stateno) ); epicode(); procode(); dobss(); prdbginfo(); putbracket(); procinit(); /* clean up for next procedure */ }