Thanks for your reply,
Am 03.02.2016 um 12:48 schrieb Jeremie Dimino:
> void g(...) {
> CAMLparam0();
> CAMLlocal3(ml_t, ml_x, ml_g);
> ...
> CAMLreturn0;
> }
I tried this before, but it seemed like the GC would still write into
the arguments here. Is the semantics of CAMLparam0 that I might have
additional, unmanaged arguments?
> Note that &(user_data->g) must be a GC root as well. Are you
> registering &(user_data->g) with the GC in any way?
Good question. It _is_ an argument to a function on the other side of
the stack, so in principle it is alive, but could the GC move it?