case double_P: return &ffi_type_double;
case float_P: return &ffi_type_float;
case int_P: return &ffi_type_sint;
case double_P: return &ffi_type_double;
case float_P: return &ffi_type_float;
case int_P: return &ffi_type_sint;
case array_P: return &ffi_type_pointer;
case pointer_P: return &ffi_type_pointer;
case bit_P: _assert(false); break;
case array_P: return &ffi_type_pointer;
case pointer_P: return &ffi_type_pointer;
case bit_P: _assert(false); break;
case double_P: return &ffi_type_double;
case float_P: return &ffi_type_double;
case int_P: return &ffi_type_sint;
case double_P: return &ffi_type_double;
case float_P: return &ffi_type_double;
case int_P: return &ffi_type_sint;
case longlong_P: return &ffi_type_slonglong;
case short_P: return &ffi_type_sshort;
case void_P: return &ffi_type_void;
case longlong_P: return &ffi_type_slonglong;
case short_P: return &ffi_type_sshort;
case void_P: return &ffi_type_void;