changed mechanism for for-loop checking, added some trap numbers

This commit is contained in:
ceriel 1987-11-09 11:36:45 +00:00
parent 785e174cbb
commit b6d6c4ee57
4 changed files with 7 additions and 3 deletions

View file

@ -16,7 +16,6 @@ Semaphores.mod
random.mod
Strings.mod
catch.c
FORchk.c
Traps.mod
Arguments.c
LtoUset.e

View file

@ -11,4 +11,4 @@ all:
install:
-mkdir $(DEFDIR)
for i in $(SOURCES) ; do cp $$i $(DEFDIR)/$$i ; done
cp $(SOURCES) $(DEFDIR)

View file

@ -7,6 +7,9 @@ DEFINITION MODULE Traps;
ERRTOOMANY = 65; (* too many nested traps + handlers *)
ERRNORESULT = 66; (* no RETURN from function procedure *)
ERRCARDOVFL = 67; (* CARDINAL overflow *)
ERRFORLOOP = 68; (* value of FOR-loop control variable changed
in loop
*)
TYPE TrapHandler = EM.TrapHandler;

View file

@ -34,6 +34,7 @@ static struct errm {
{ M2_TOOMANY, "too many nested traps + handlers"},
{ M2_NORESULT, "no RETURN from procedure function"},
{ M2_UOVFL, "cardinal overflow"},
{ M2_FORCH, "Warning: FOR-loop control variable was changed in the body"},
{ -1, 0}
};
@ -70,5 +71,6 @@ _catch(trapno)
*p = 0;
Traps_Message(q, 0, (int) (p - q), 1);
}
exit(trapno);
if (trapno != M2_FORCH) exit(trapno);
SIG(_catch);
}