t_id
84
t_adddate
2003/10/03
t_result
0
t_knownrunerror
0
tr_id | run | tr_ok | tr_skip | tr_result |
---|---|---|---|---|
950708416 | 1015783 | True | False | Successfully run |
Record count: 1
{$S+} { Program to check that an infinite recursion does generate a RTE ... } {$R-} { make that recursion really infinite needs that range check is disabled } const level : longint = 0; function inf_rec(x : longint) : longint; begin inc(level); inf_rec:=x+inf_rec(x-1); end; const saveexit : pointer = nil; x : longint = 0; procedure stack_check_exit; begin exitproc:=saveexit; if errorcode<>0 then begin Writeln('An error occured at level ',level); if errorcode=202 then begin Writeln('Stack overflow correctly handled'); erroraddr:=nil; errorcode:=0; exitcode:=0; end else if errorcode=216 then begin Writeln('RTL returns an RTE 216 on stack overflow'); Writeln('Not perfect, but acceptable'); erroraddr:=nil; errorcode:=0; exitcode:=0; end; end else begin exitcode:=1; errorcode:=1; end; exitproc:=saveexit; end; begin saveexit:=exitproc; exitproc:=@stack_check_exit; x:=inf_rec(5000); end.