--- a/pocaml_c.c +++ b/pocaml_c.c @@ -676,11 +676,13 @@ static inline void check_perl_failure () { + CAMLparam0 (); + CAMLlocal1 (errv); + SV *errsv = get_sv ("@", TRUE); if (SvTRUE (errsv)) /* Equivalent of $@ in Perl. */ { - CAMLlocal1 (errv); STRLEN n_a; const char *err = SvPV (errsv, n_a); @@ -688,6 +688,8 @@ caml_raise_with_arg (*caml_named_value ("pocaml_perl_failure"), errv); } + + CAMLreturn0; } CAMLprim value