summaryrefslogtreecommitdiffstats
path: root/byterun/fail.c
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2008-09-18 11:23:28 +0000
committerXavier Leroy <xavier.leroy@inria.fr>2008-09-18 11:23:28 +0000
commitcfec1dd5d824a5454d51ab3b6022f204decb5a9c (patch)
tree99f7a99c4863297732db12052eba168a2f19325c /byterun/fail.c
parent444fdef24feed161fa8a33f3602bca4f39a790d2 (diff)
PR#4390: ajout caml_raise_with_args
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9030 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'byterun/fail.c')
-rw-r--r--byterun/fail.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/byterun/fail.c b/byterun/fail.c
index a36b6afb4..b1a08c611 100644
--- a/byterun/fail.c
+++ b/byterun/fail.c
@@ -60,6 +60,21 @@ CAMLexport void caml_raise_with_arg(value tag, value arg)
CAMLnoreturn;
}
+CAMLexport 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;
+}
+
CAMLexport void caml_raise_with_string(value tag, char const *msg)
{
CAMLparam1 (tag);