The C stub passes a pointer to a double. It should be pointer to float when 32-bit float.
value hdf5_h5a_read_float(value attr_v, value mem_type_v)
{
CAMLparam2(attr_v, mem_type_v);
double buf; <<<<<<
raise_if_fail(H5Aread(Hid_val(attr_v), Hid_val(mem_type_v), &buf));
CAMLreturn(caml_copy_double(buf));
}
The C stub passes a pointer to a double. It should be pointer to float when 32-bit float.
value hdf5_h5a_read_float(value attr_v, value mem_type_v)
{
CAMLparam2(attr_v, mem_type_v);
double buf; <<<<<<
raise_if_fail(H5Aread(Hid_val(attr_v), Hid_val(mem_type_v), &buf));
CAMLreturn(caml_copy_double(buf));
}