diff options
Diffstat (limited to 'asmrun/fail.c')
-rw-r--r-- | asmrun/fail.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/asmrun/fail.c b/asmrun/fail.c index 0bc0f4b62..a1ec0fb07 100644 --- a/asmrun/fail.c +++ b/asmrun/fail.c @@ -94,6 +94,21 @@ void caml_raise_with_arg(value tag, value arg) CAMLnoreturn; } +void caml_raise_with_args(value tag, int nargs, value args[]) +{ + CAMLparam1 (tag); + CAMLxparamN (args, nargs); + value bucket; + int i; + + Assert(1 + nargs <= Max_young_wosize); + bucket = caml_alloc_small (1 + nargs, 0); + Field(bucket, 0) = tag; + for (i = 0; i < nargs; i++) Field(bucket, 1 + i) = args[i]; + caml_raise(bucket); + CAMLnoreturn; +} + void caml_raise_with_string(value tag, char const *msg) { caml_raise_with_arg(tag, caml_copy_string(msg)); |