ocaml/test/testinterp/t360-stacks-2.ml

55 lines
973 B
OCaml

open Lib;;
let rec f n =
if n <= 0 then 12
else 1 + f (n-1)
in
try
ignore (f 3000000);
raise Not_found
with Stack_overflow -> ()
;;
(**
0 CONSTINT 42
2 PUSHACC0
3 MAKEBLOCK1 0
5 POP 1
7 SETGLOBAL Lib
9 BRANCH 29
11 CONST0
12 PUSHACC1
13 LEINT
14 BRANCHIFNOT 20
16 CONSTINT 12
18 RETURN 1
20 ACC0
21 OFFSETINT -1
23 PUSHOFFSETCLOSURE0
24 APPLY1
25 PUSHCONST1
26 ADDINT
27 RETURN 1
29 CLOSUREREC 0, 11
33 PUSHTRAP 44
35 CONSTINT 3000000
37 PUSHACC5
38 APPLY1
39 GETGLOBAL Not_found
41 MAKEBLOCK1 0
43 RAISE
44 PUSHGETGLOBAL Stack_overflow
46 PUSHACC1
47 GETFIELD0
48 EQ
49 BRANCHIFNOT 54
51 CONST0
52 BRANCH 56
54 ACC0
55 RAISE
56 POP 1
58 POP 1
60 ATOM0
61 SETGLOBAL T360-stacks-2
63 STOP
**)