SCCS-vsn: usr.bin/pascal/px/interp.c 1.14
SCCS-vsn: usr.bin/pascal/px/Makefile 1.9
-SCCSID = "@(#)Makefile 1.8 %G%"
+SCCSID = "@(#)Makefile 1.9 %G%"
RM = rm -f
PSHDR = OPnames.h whoami.h objfmt.h opc.c pic.c
RM = rm -f
PSHDR = OPnames.h whoami.h objfmt.h opc.c pic.c
-PCHDR = libpc.h h01errs.h
clean:
${RM} *.o *.s px version opc* pic* OPnames.h objfmt.h libpc.h\
clean:
${RM} *.o *.s px version opc* pic* OPnames.h objfmt.h libpc.h\
- panics.h h01errs.h h02opcs.h errs lpr core tmp
+ panics.h h02opcs.h errs lpr core tmp
prt: interp.s
sed -f clean.sed <interp.s
prt: interp.s
sed -f clean.sed <interp.s
interp.o: panics.h
interp.o: h02opcs.h
interp.o: machdep.h
interp.o: panics.h
interp.o: h02opcs.h
interp.o: machdep.h
interp.o: libpc.h
opc.o: OPnames.h
pic.o: OPnames.h
interp.o: libpc.h
opc.o: OPnames.h
pic.o: OPnames.h
/* Copyright (c) 1979 Regents of the University of California */
/* Copyright (c) 1979 Regents of the University of California */
-static char sccsid[] = "@(#)interp.c 1.13 %G%";
+static char sccsid[] = "@(#)interp.c 1.14 %G%";
#include <math.h>
#include "whoami.h"
#include <math.h>
#include "whoami.h"
#include "panics.h"
#include "h02opcs.h"
#include "machdep.h"
#include "panics.h"
#include "h02opcs.h"
#include "machdep.h"
stp = _dp->stp;
while (tstp != stp) {
if (_dp == &_display.frame[1])
stp = _dp->stp;
while (tstp != stp) {
if (_dp == &_display.frame[1])
- ERROR(EGOTO); /* exiting prog ??? */
+ ERROR("Active frame not found in non-local goto\n", 0); /* exiting prog ??? */
PCLOSE(_dp->locvars); /* close local files */
curfile = stp->file; /* restore active file */
*_dp = stp->odisp; /* old display entry */
PCLOSE(_dp->locvars); /* close local files */
curfile = stp->file; /* restore active file */
*_dp = stp->odisp; /* old display entry */
if (tl1 == *tcp++)
break;
if (tl == 0) /* default case => error */
if (tl1 == *tcp++)
break;
if (tl == 0) /* default case => error */
+ ERROR("Label of %D not found in case\n", tl1);
pc.cp += *(tsp - tl);
continue;
case O_CASE2OP:
pc.cp += *(tsp - tl);
continue;
case O_CASE2OP:
if (tl1 == *tsp1++)
break;
if (tl == 0) /* default case => error */
if (tl1 == *tsp1++)
break;
if (tl == 0) /* default case => error */
+ ERROR("Label of %D not found in case\n", tl1);
pc.cp += *(tsp - tl);
continue;
case O_CASE4OP:
pc.cp += *(tsp - tl);
continue;
case O_CASE4OP:
if (tl1 == *tlp++)
break;
if (tl == 0) /* default case => error */
if (tl1 == *tlp++)
break;
if (tl == 0) /* default case => error */
+ ERROR("Label of %D not found in case\n", tl1);
pc.cp += *(tsp - tl);
continue;
case O_ADDT:
pc.cp += *(tsp - tl);
continue;
case O_ADDT: