mirror of
https://github.com/Z3Prover/z3
synced 2025-04-22 16:45:31 +00:00
override n_mk_config in ml bindings to catch exception path
This commit is contained in:
parent
29a28f544d
commit
21158d87e3
2 changed files with 26 additions and 0 deletions
|
@ -448,3 +448,21 @@ CAMLprim value DLL_PUBLIC n_set_internal_error_handler(value ctx_v)
|
|||
Z3_set_error_handler(ctx_p->ctx, MLErrorHandler);
|
||||
CAMLreturn(Val_unit);
|
||||
}
|
||||
|
||||
CAMLprim DLL_PUBLIC value n_mk_config() {
|
||||
CAMLparam0();
|
||||
CAMLlocal1(result);
|
||||
Z3_config z3rv;
|
||||
|
||||
/* invoke Z3 function */
|
||||
z3rv = Z3_mk_config();
|
||||
|
||||
if (z3rv == NULL) {
|
||||
caml_raise_with_string(*caml_named_value("Z3EXCEPTION"), "internal error");
|
||||
}
|
||||
|
||||
/* construct simple return value */
|
||||
result = caml_alloc_custom(&default_custom_ops, sizeof(Z3_config), 0, 1); *(Z3_config*)Data_custom_val(result) = z3rv;
|
||||
/* cleanup and return */
|
||||
CAMLreturn(result);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue