summaryrefslogtreecommitdiffstats
path: root/testsuite/tests/runtime-errors/stackoverflow.ml
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/runtime-errors/stackoverflow.ml')
-rw-r--r--testsuite/tests/runtime-errors/stackoverflow.ml15
1 files changed, 15 insertions, 0 deletions
diff --git a/testsuite/tests/runtime-errors/stackoverflow.ml b/testsuite/tests/runtime-errors/stackoverflow.ml
new file mode 100644
index 000000000..4d211bc82
--- /dev/null
+++ b/testsuite/tests/runtime-errors/stackoverflow.ml
@@ -0,0 +1,15 @@
+let rec f x =
+ if x land 0xFFFF <> 0
+ then 1 + f (x + 1)
+ else
+ try
+ 1 + f (x + 1)
+ with Stack_overflow ->
+ print_string "x = "; print_int x; print_newline();
+ raise Stack_overflow
+
+let _ =
+ try
+ ignore(f 0)
+ with Stack_overflow ->
+ print_string "Stack overflow caught"; print_newline()