By explicitly casting it to unsigned.
Reasoning on why this is needed, provided by Andrew Cooper:
"Ocaml stores integers shifted left by one, and with the bottom bit set.
Values with the bottom bit clear are pointers into the GC'd heap. Values
with the bottom bit set are integers, and need to be shifted by 1 bit to
have calculations performed."
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Release-acked-by: Wei Liu <wei.liu2@citrix.com>
CAMLparam1(connect_to);
CAMLlocal1(sock_ret);
- sock_ret = Val_int(-1);
+ sock_ret = Val_int(-1U);
CAMLreturn(sock_ret);
}
CAMLparam1(ignore);
CAMLlocal1(ret);
- ret = Val_int(-1);
+ ret = Val_int(-1U);
CAMLreturn(ret);
}