diff --git a/examples/cpp/method/example_generated.rs b/examples/cpp/method/example_generated.rs index 294b13b3f..56bd2b01a 100644 --- a/examples/cpp/method/example_generated.rs +++ b/examples/cpp/method/example_generated.rs @@ -37,7 +37,7 @@ pub mod foo { /// Generated from: examples/cpp/method/example.h;l=14 #[inline(always)] pub unsafe fn MyMethod(__this: *mut Self) { - self::bar::MyMethod(__this) + unsafe { self::bar::MyMethod(__this) } } } @@ -62,7 +62,7 @@ pub mod foo { /// Generated from: examples/cpp/method/example.h;l=14 #[inline(always)] pub unsafe fn MyMethod(__this: *mut crate::foo::Bar) { - crate::detail::__rust_thunk___ZN3foo3Bar8MyMethodEv(__this) + unsafe { crate::detail::__rust_thunk___ZN3foo3Bar8MyMethodEv(__this) } } } } diff --git a/examples/cpp/unsafe_attributes/example_generated.rs b/examples/cpp/unsafe_attributes/example_generated.rs index a89801326..027dccc0b 100644 --- a/examples/cpp/unsafe_attributes/example_generated.rs +++ b/examples/cpp/unsafe_attributes/example_generated.rs @@ -27,7 +27,7 @@ pub fn SafeSignatureWithoutAnnotation() { /// Generated from: examples/cpp/unsafe_attributes/example.h;l=11 #[inline(always)] pub unsafe fn SafeSignatureButAnnotatedUnsafe() { - crate::detail::__rust_thunk___Z31SafeSignatureButAnnotatedUnsafev() + unsafe { crate::detail::__rust_thunk___Z31SafeSignatureButAnnotatedUnsafev() } } /// # Safety @@ -38,7 +38,7 @@ pub unsafe fn SafeSignatureButAnnotatedUnsafe() { /// Generated from: examples/cpp/unsafe_attributes/example.h;l=13 #[inline(always)] pub unsafe fn UnsafeSignatureWithoutAnnotation(__param_0: *mut ::ffi_11::c_void) { - crate::detail::__rust_thunk___Z32UnsafeSignatureWithoutAnnotationPv(__param_0) + unsafe { crate::detail::__rust_thunk___Z32UnsafeSignatureWithoutAnnotationPv(__param_0) } } /// Generated from: examples/cpp/unsafe_attributes/example.h;l=14 @@ -64,7 +64,7 @@ pub fn SafeBasedOnBoolean() { /// Generated from: examples/cpp/unsafe_attributes/example.h;l=17 #[inline(always)] pub unsafe fn UnsafeBasedOnBoolean() { - crate::detail::__rust_thunk___Z20UnsafeBasedOnBooleanv() + unsafe { crate::detail::__rust_thunk___Z20UnsafeBasedOnBooleanv() } } // Generated from: nowhere/llvm/src/libcxx/include/__type_traits/integral_constant.h;l=21 diff --git a/examples/cpp/virtual/example_generated.rs b/examples/cpp/virtual/example_generated.rs index 12bb46aa0..13006daa7 100644 --- a/examples/cpp/virtual/example_generated.rs +++ b/examples/cpp/virtual/example_generated.rs @@ -39,7 +39,7 @@ impl RustDerived { /// Generated from: examples/cpp/virtual/example.h;l=16 #[inline(always)] pub unsafe fn Method1(__this: *const Self) -> ::ffi_11::c_int { - self::rust_derived::Method1(__this) + unsafe { self::rust_derived::Method1(__this) } } /// # Safety /// @@ -49,7 +49,7 @@ impl RustDerived { /// Generated from: examples/cpp/virtual/example.h;l=18 #[inline(always)] pub unsafe fn Upcast(__this: *mut Self) -> *mut ::base::ExampleBase { - self::rust_derived::Upcast(__this) + unsafe { self::rust_derived::Upcast(__this) } } } @@ -61,7 +61,7 @@ impl<'__unelided> ::ctor::CtorNew<::ctor::RvalueReference<'__unelided, Self>> fo fn ctor_new(args: ::ctor::RvalueReference<'__unelided, Self>) -> Self::CtorType { let mut __param_0 = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN11RustDerivedC1EOS_( dest as *mut ::core::ffi::c_void, __param_0, @@ -84,7 +84,7 @@ impl<'__unelided> ::ctor::CtorNew<(::ctor::RvalueReference<'__unelided, Self>,)> impl ::ctor::PinnedDrop for RustDerived { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN11RustDerivedD1Ev(self) + unsafe { crate::detail::__rust_thunk___ZN11RustDerivedD1Ev(self) } } } @@ -106,7 +106,7 @@ impl ::ctor::CtorNew<::definition::RustDerived> for RustDerived { fn ctor_new(args: ::definition::RustDerived) -> Self::CtorType { let mut rust = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN11RustDerivedC1EN10definition11RustDerivedE( dest as *mut ::core::ffi::c_void, &mut rust, @@ -128,7 +128,9 @@ impl ::ctor::CtorNew<(::definition::RustDerived,)> for RustDerived { unsafe impl ::operator::Delete for crate::RustDerived { #[inline(always)] unsafe fn delete(p: *mut Self) { - crate::detail::__crubit_operator_delete__11RustDerived___2f_2fthird_5fparty_2fcrubit_2fexamples_2fcpp_2fvirtual_3aexample_5flib(p); + unsafe { + crate::detail::__crubit_operator_delete__11RustDerived___2f_2fthird_5fparty_2fcrubit_2fexamples_2fcpp_2fvirtual_3aexample_5flib(p); + } } } @@ -141,7 +143,7 @@ pub mod rust_derived { /// Generated from: examples/cpp/virtual/example.h;l=16 #[inline(always)] pub unsafe fn Method1(__this: *const crate::RustDerived) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___ZNK11RustDerived7Method1Ev(__this) + unsafe { crate::detail::__rust_thunk___ZNK11RustDerived7Method1Ev(__this) } } /// # Safety /// @@ -151,7 +153,7 @@ pub mod rust_derived { /// Generated from: examples/cpp/virtual/example.h;l=18 #[inline(always)] pub unsafe fn Upcast(__this: *mut crate::RustDerived) -> *mut ::base::ExampleBase { - crate::detail::__rust_thunk___ZN11RustDerived6UpcastEv(__this) + unsafe { crate::detail::__rust_thunk___ZN11RustDerived6UpcastEv(__this) } } } diff --git a/rs_bindings_from_cc/bazel_support/compile_rust.bzl b/rs_bindings_from_cc/bazel_support/compile_rust.bzl index d3efc8b20..d87daf89a 100644 --- a/rs_bindings_from_cc/bazel_support/compile_rust.bzl +++ b/rs_bindings_from_cc/bazel_support/compile_rust.bzl @@ -108,7 +108,7 @@ def compile_rust(ctx, attr, src, extra_srcs, deps, crate_name, include_coverage, aliases = aliases, output = lib, metadata = rmeta, - edition = "2018", + edition = "2024", is_test = False, rustc_env = {}, compile_data = depset([]), diff --git a/rs_bindings_from_cc/generate_bindings/database/code_snippet.rs b/rs_bindings_from_cc/generate_bindings/database/code_snippet.rs index 4a9738d80..cabd5b797 100644 --- a/rs_bindings_from_cc/generate_bindings/database/code_snippet.rs +++ b/rs_bindings_from_cc/generate_bindings/database/code_snippet.rs @@ -773,7 +773,7 @@ pub fn generated_items_to_tokens<'db>( quote! { unsafe impl oops::Inherits<#base_name> for #derived_name { unsafe fn upcast_ptr(derived: *const Self) -> *const #base_name { - #body + unsafe { #body } } } __NEWLINE__ @@ -797,7 +797,7 @@ pub fn generated_items_to_tokens<'db>( unsafe impl ::operator::Delete for #record_type { #[inline(always)] unsafe fn delete(p: *mut Self) { - #crate_root_path::detail::#thunk_ident(p); + unsafe { #crate_root_path::detail::#thunk_ident(p); } } } __NEWLINE__ @@ -902,7 +902,7 @@ pub fn generated_items_to_tokens<'db>( link_name.as_deref().map(|link_name| quote! { #[link_name = #link_name] }); let mut_kw = if *is_mut { Some(quote! { mut }) } else { None }; quote! { - extern "C" { + unsafe extern "C" { #link_name_attr #visibility static #mut_kw #ident: #type_tokens; } diff --git a/rs_bindings_from_cc/generate_bindings/generate_function.rs b/rs_bindings_from_cc/generate_bindings/generate_function.rs index 14d3aa378..3fb1128f8 100644 --- a/rs_bindings_from_cc/generate_bindings/generate_function.rs +++ b/rs_bindings_from_cc/generate_bindings/generate_function.rs @@ -1146,10 +1146,12 @@ fn generate_func_body( CrubitAbiTypeToRustExprTokens(&crubit_abi_type); quote! { ::bridge_rust::unstable_return!(@ #crubit_abi_type_expr_tokens, #crubit_abi_type_tokens, |__return_abi_buffer| { - #crate_root_path::detail::#thunk_ident( - __return_abi_buffer, - #(#clone_prefixes #thunk_args #clone_suffixes ),* - ); + unsafe { + #crate_root_path::detail::#thunk_ident( + __return_abi_buffer, + #(#clone_prefixes #thunk_args #clone_suffixes ),* + ); + } }) } } @@ -1157,10 +1159,12 @@ fn generate_func_body( quote! { ::ctor::FnCtor::new( move |dest: *mut #return_type_or_self| { - #crate_root_path::detail::#thunk_ident( - dest as *mut ::core::ffi::c_void - #( , #thunk_args )* - ); + unsafe { + #crate_root_path::detail::#thunk_ident( + dest as *mut ::core::ffi::c_void + #( , #thunk_args )* + ); + } } ) } @@ -1192,11 +1196,9 @@ fn generate_func_body( // return_type = RsTypeKind::Primitive(PrimitiveType::Unit); let _ = return_type; // proof that we don't need to update it. } - // Only need to wrap everything in an `unsafe { ... }` block if - // the *whole* api function is safe. - if !impl_kind.is_unsafe() { - body = quote! { unsafe { #body } }; - } + // In Rust 2024, `unsafe fn` bodies are not considered unsafe blocks, + // so we must always wrap the thunk call in an `unsafe { ... }` block. + body = quote! { unsafe { #body } }; Ok(quote! { #thunk_prepare #body @@ -1746,6 +1748,11 @@ pub fn generate_function( let target_record = derived_record.clone().unwrap_or_else(|| record.clone()); let mod_name = db.record_to_associated_module_name(target_record)?; + let delegate_call = if impl_kind.is_unsafe() { + quote! { unsafe { self::#mod_name::#func_name(#( #method_delegation_args ),*) } } + } else { + quote! { self::#mod_name::#func_name(#( #method_delegation_args ),*) } + }; member_functions_map.insert( derived_record.as_deref().unwrap_or(record.as_ref()).id, @@ -1758,7 +1765,7 @@ pub fn generate_function( fn #bracketed_func_name #fn_generic_params( #( #api_params ),* ) #arrow #quoted_return_type #unsatisfied_where_clause { - self::#mod_name::#func_name(#( #method_delegation_args ),*) + #delegate_call } }], ); diff --git a/rs_bindings_from_cc/test/annotations/do_not_bind_rs_api.rs b/rs_bindings_from_cc/test/annotations/do_not_bind_rs_api.rs index 7c064927b..6f67945cb 100644 --- a/rs_bindings_from_cc/test/annotations/do_not_bind_rs_api.rs +++ b/rs_bindings_from_cc/test/annotations/do_not_bind_rs_api.rs @@ -146,7 +146,7 @@ pub mod crubit { __this: *mut Self, mut __param_0: crate::crubit::test::ArgumentToBoundOverload, ) { - self::struct_with_do_not_bind_method::DoNotBindMethod(__this, __param_0) + unsafe { self::struct_with_do_not_bind_method::DoNotBindMethod(__this, __param_0) } } } @@ -176,7 +176,9 @@ pub mod crubit { __this: *mut crate::crubit::test::StructWithDoNotBindMethod, mut __param_0: crate::crubit::test::ArgumentToBoundOverload, ) { - crate::detail::__rust_thunk___ZN6crubit4test25StructWithDoNotBindMethod15DoNotBindMethodENS0_23ArgumentToBoundOverloadE(__this,&mut __param_0) + unsafe { + crate::detail::__rust_thunk___ZN6crubit4test25StructWithDoNotBindMethod15DoNotBindMethodENS0_23ArgumentToBoundOverloadE(__this,&mut __param_0) + } } } } diff --git a/rs_bindings_from_cc/test/annotations/owned_ptr_rs_api.rs b/rs_bindings_from_cc/test/annotations/owned_ptr_rs_api.rs index 57ff759ed..95b90c9fd 100644 --- a/rs_bindings_from_cc/test/annotations/owned_ptr_rs_api.rs +++ b/rs_bindings_from_cc/test/annotations/owned_ptr_rs_api.rs @@ -43,7 +43,7 @@ impl RawThing { /// Generated from: rs_bindings_from_cc/test/annotations/owned_ptr.h;l=21 #[inline(always)] pub unsafe fn Close(__this: *mut Self) { - self::raw_thing::Close(__this) + unsafe { self::raw_thing::Close(__this) } } } @@ -95,7 +95,7 @@ pub mod raw_thing { /// Generated from: rs_bindings_from_cc/test/annotations/owned_ptr.h;l=21 #[inline(always)] pub unsafe fn Close(__this: *mut crate::RawThing) { - crate::detail::__rust_thunk___ZN5Thing5CloseEv(__this) + unsafe { crate::detail::__rust_thunk___ZN5Thing5CloseEv(__this) } } } diff --git a/rs_bindings_from_cc/test/annotations/owned_ptr_user_rs_api.rs b/rs_bindings_from_cc/test/annotations/owned_ptr_user_rs_api.rs index 76c6746eb..3e22d3832 100644 --- a/rs_bindings_from_cc/test/annotations/owned_ptr_user_rs_api.rs +++ b/rs_bindings_from_cc/test/annotations/owned_ptr_user_rs_api.rs @@ -37,7 +37,9 @@ pub fn MakeThing(value: ::ffi_11::c_int) -> *mut ::owned_ptr::RawThing { /// Generated from: rs_bindings_from_cc/test/annotations/owned_ptr_user.h;l=18 #[inline(always)] pub unsafe fn ThingToValue(thingptr: ::owned_ptr::OwnedThing) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___Z12ThingToValueP5Thing(::core::mem::transmute(thingptr)) + unsafe { + crate::detail::__rust_thunk___Z12ThingToValueP5Thing(::core::mem::transmute(thingptr)) + } } /// # Safety @@ -48,7 +50,7 @@ pub unsafe fn ThingToValue(thingptr: ::owned_ptr::OwnedThing) -> ::ffi_11::c_int /// Generated from: rs_bindings_from_cc/test/annotations/owned_ptr_user.h;l=20 #[inline(always)] pub unsafe fn GetThingValue(thingptr: *mut ::owned_ptr::RawThing) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___Z13GetThingValueP5Thing(thingptr) + unsafe { crate::detail::__rust_thunk___Z13GetThingValueP5Thing(thingptr) } } // Generated from: nowhere/llvm/src/libcxx/include/__type_traits/integral_constant.h;l=21 diff --git a/rs_bindings_from_cc/test/annotations/rust_name_rs_api.rs b/rs_bindings_from_cc/test/annotations/rust_name_rs_api.rs index 93d3a45a9..30a7e8d3c 100644 --- a/rs_bindings_from_cc/test/annotations/rust_name_rs_api.rs +++ b/rs_bindings_from_cc/test/annotations/rust_name_rs_api.rs @@ -73,7 +73,7 @@ pub mod crubit { b: ::ffi_11::c_int, c: ::ffi_11::c_int, ) -> Self { - self::some_struct::ConstructorNewName(a, b, c) + unsafe { self::some_struct::ConstructorNewName(a, b, c) } } /// # Safety /// @@ -84,7 +84,7 @@ pub mod crubit { /// Expanded at: rs_bindings_from_cc/test/annotations/rust_name.h;l=21 #[inline(always)] pub unsafe fn MethodNewName(__this: *const Self) { - self::some_struct::MethodNewName(__this) + unsafe { self::some_struct::MethodNewName(__this) } } } @@ -131,7 +131,11 @@ pub mod crubit { /// Expanded at: rs_bindings_from_cc/test/annotations/rust_name.h;l=21 #[inline(always)] pub unsafe fn MethodNewName(__this: *const crate::crubit::test::SomeStruct) { - crate::detail::__rust_thunk___ZNK6crubit4test10SomeStruct13MethodOldNameEv(__this) + unsafe { + crate::detail::__rust_thunk___ZNK6crubit4test10SomeStruct13MethodOldNameEv( + __this, + ) + } } } } diff --git a/rs_bindings_from_cc/test/assume_lifetimes/assumed_c9_rs_api.rs b/rs_bindings_from_cc/test/assume_lifetimes/assumed_c9_rs_api.rs index 3db921618..01c691ef6 100644 --- a/rs_bindings_from_cc/test/assume_lifetimes/assumed_c9_rs_api.rs +++ b/rs_bindings_from_cc/test/assume_lifetimes/assumed_c9_rs_api.rs @@ -18,7 +18,7 @@ #[inline(always)] pub fn CoReturnReference() -> ::co::Co<'static, *mut ::ffi_11::c_int> { unsafe { - ::bridge_rust::unstable_return!(@::co::internal_crubit::CoCrubitAbi::new(|consume_result_into_buffer: ::co::internal_crubit::ConsumeResultIntoBufferFn,context: *mut::core::ffi::c_void|->*mut::ffi_11::c_int{ ::bridge_rust::unstable_return!(@::bridge_rust::transmute_abi::<*mut::ffi_11::c_int>(),::bridge_rust::TransmuteAbi<*mut::ffi_11::c_int>,|buffer: *mut u8|{ (consume_result_into_buffer.unwrap())(context,buffer,<::bridge_rust::TransmuteAbi<*mut::ffi_11::c_int>as::bridge_rust::CrubitAbi>::SIZE,); }) }),::co::internal_crubit::CoCrubitAbi<*mut::ffi_11::c_int>,|__return_abi_buffer|{ crate::detail::__rust_thunk___Z17CoReturnReferencev(__return_abi_buffer,); }) + ::bridge_rust::unstable_return!(@::co::internal_crubit::CoCrubitAbi::new(|consume_result_into_buffer: ::co::internal_crubit::ConsumeResultIntoBufferFn,context: *mut::core::ffi::c_void|->*mut::ffi_11::c_int{ ::bridge_rust::unstable_return!(@::bridge_rust::transmute_abi::<*mut::ffi_11::c_int>(),::bridge_rust::TransmuteAbi<*mut::ffi_11::c_int>,|buffer: *mut u8|{ (consume_result_into_buffer.unwrap())(context,buffer,<::bridge_rust::TransmuteAbi<*mut::ffi_11::c_int>as::bridge_rust::CrubitAbi>::SIZE,); }) }),::co::internal_crubit::CoCrubitAbi<*mut::ffi_11::c_int>,|__return_abi_buffer|{ unsafe{ crate::detail::__rust_thunk___Z17CoReturnReferencev(__return_abi_buffer,); } }) } } diff --git a/rs_bindings_from_cc/test/assume_lifetimes/member_function_rs_api.rs b/rs_bindings_from_cc/test/assume_lifetimes/member_function_rs_api.rs index 8f3f029d6..4d994f556 100644 --- a/rs_bindings_from_cc/test/assume_lifetimes/member_function_rs_api.rs +++ b/rs_bindings_from_cc/test/assume_lifetimes/member_function_rs_api.rs @@ -31,12 +31,12 @@ impl S { /// Generated from: rs_bindings_from_cc/test/assume_lifetimes/member_function.h;l=9 #[inline(always)] pub fn int_accessor<'__this>(&'__this self) -> ::cref::CRef<'__this, ::ffi_11::c_int> { - self::s::int_accessor(self) + unsafe { self::s::int_accessor(self) } } /// Generated from: rs_bindings_from_cc/test/assume_lifetimes/member_function.h;l=10 #[inline(always)] pub fn me<'__this>(&'__this mut self) -> ::cref::CMut<'__this, crate::S> { - self::s::me(self) + unsafe { self::s::me(self) } } } diff --git a/rs_bindings_from_cc/test/consume_absl/absl_functional.golden.rs b/rs_bindings_from_cc/test/consume_absl/absl_functional.golden.rs index feafb7473..6a178fc0a 100644 --- a/rs_bindings_from_cc/test/consume_absl/absl_functional.golden.rs +++ b/rs_bindings_from_cc/test/consume_absl/absl_functional.golden.rs @@ -45,7 +45,7 @@ pub fn ReturnIntVoid() -> ::alloc::boxed::Box< + 'static, > { unsafe { - ::bridge_rust::unstable_return!(@::any_invocable::AnyInvocableAbi::::ffi_11::c_int+::core::marker::Send+::core::marker::Sync+'static>::new(::alloc::boxed::Box::new(|_: ::ffi_11::c_int|->::ffi_11::c_int{ ::core::panic!("moved-from value") }),|raw_any_invocable: ::cc_std::std::unique_ptr<::any_invocable::RawAnyInvocable>|->::alloc::boxed::Box::ffi_11::c_int+::core::marker::Send+::core::marker::Sync+'static>{ ::alloc::boxed::Box::new(move|param_0: ::ffi_11::c_int|->::ffi_11::c_int{ unsafe{ crate::detail::__crubit_invoke_any_invocable___CcTemplateInstN4absl12AnyInvocableIKFiiEEE__2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fconsume_5fabsl_3aabsl_5ffunctional(raw_any_invocable.get(),param_0) } }) },),::any_invocable::AnyInvocableAbi::ffi_11::c_int+::core::marker::Send+::core::marker::Sync+'static>,|__return_abi_buffer|{ crate::detail::__rust_thunk___Z13ReturnIntVoidv(__return_abi_buffer,); }) + ::bridge_rust::unstable_return!(@::any_invocable::AnyInvocableAbi::::ffi_11::c_int+::core::marker::Send+::core::marker::Sync+'static>::new(::alloc::boxed::Box::new(|_: ::ffi_11::c_int|->::ffi_11::c_int{ ::core::panic!("moved-from value") }),|raw_any_invocable: ::cc_std::std::unique_ptr<::any_invocable::RawAnyInvocable>|->::alloc::boxed::Box::ffi_11::c_int+::core::marker::Send+::core::marker::Sync+'static>{ ::alloc::boxed::Box::new(move|param_0: ::ffi_11::c_int|->::ffi_11::c_int{ unsafe{ crate::detail::__crubit_invoke_any_invocable___CcTemplateInstN4absl12AnyInvocableIKFiiEEE__2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fconsume_5fabsl_3aabsl_5ffunctional(raw_any_invocable.get(),param_0) } }) },),::any_invocable::AnyInvocableAbi::ffi_11::c_int+::core::marker::Send+::core::marker::Sync+'static>,|__return_abi_buffer|{ unsafe{ crate::detail::__rust_thunk___Z13ReturnIntVoidv(__return_abi_buffer,); } }) } } @@ -61,7 +61,7 @@ pub fn MyOptionIntMapper() -> ::alloc::boxed::Box< + 'static, > { unsafe { - ::bridge_rust::unstable_return!(@::any_invocable::AnyInvocableAbi::)->crate::MyOption<::ffi_11::c_int>+::core::marker::Send+::core::marker::Sync+'static>::new(::alloc::boxed::Box::new(|_: crate::MyOption<::ffi_11::c_int>|->crate::MyOption<::ffi_11::c_int>{ ::core::panic!("moved-from value") }),|raw_any_invocable: ::cc_std::std::unique_ptr<::any_invocable::RawAnyInvocable>|->::alloc::boxed::Box)->crate::MyOption<::ffi_11::c_int>+::core::marker::Send+::core::marker::Sync+'static>{ ::alloc::boxed::Box::new(move|param_0: crate::MyOption<::ffi_11::c_int>|->crate::MyOption<::ffi_11::c_int>{ ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::<::core::ffi::c_int>()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi<::core::ffi::c_int>>,|out|{ unsafe{ crate::detail::__crubit_invoke_any_invocable___CcTemplateInstN4absl12AnyInvocableIKF8MyOptionIiES2_EEE__2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fconsume_5fabsl_3aabsl_5ffunctional(raw_any_invocable.get(),::bridge_rust::unstable_encode!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::<::core::ffi::c_int>()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi<::core::ffi::c_int>>,param_0).as_ptr()as*const u8,out) } }) }) },),::any_invocable::AnyInvocableAbi)->crate::MyOption<::ffi_11::c_int>+::core::marker::Send+::core::marker::Sync+'static>,|__return_abi_buffer|{ crate::detail::__rust_thunk___Z17MyOptionIntMapperv(__return_abi_buffer,); }) + ::bridge_rust::unstable_return!(@::any_invocable::AnyInvocableAbi::)->crate::MyOption<::ffi_11::c_int>+::core::marker::Send+::core::marker::Sync+'static>::new(::alloc::boxed::Box::new(|_: crate::MyOption<::ffi_11::c_int>|->crate::MyOption<::ffi_11::c_int>{ ::core::panic!("moved-from value") }),|raw_any_invocable: ::cc_std::std::unique_ptr<::any_invocable::RawAnyInvocable>|->::alloc::boxed::Box)->crate::MyOption<::ffi_11::c_int>+::core::marker::Send+::core::marker::Sync+'static>{ ::alloc::boxed::Box::new(move|param_0: crate::MyOption<::ffi_11::c_int>|->crate::MyOption<::ffi_11::c_int>{ ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::<::core::ffi::c_int>()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi<::core::ffi::c_int>>,|out|{ unsafe{ crate::detail::__crubit_invoke_any_invocable___CcTemplateInstN4absl12AnyInvocableIKF8MyOptionIiES2_EEE__2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fconsume_5fabsl_3aabsl_5ffunctional(raw_any_invocable.get(),::bridge_rust::unstable_encode!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::<::core::ffi::c_int>()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi<::core::ffi::c_int>>,param_0).as_ptr()as*const u8,out) } }) }) },),::any_invocable::AnyInvocableAbi)->crate::MyOption<::ffi_11::c_int>+::core::marker::Send+::core::marker::Sync+'static>,|__return_abi_buffer|{ unsafe{ crate::detail::__rust_thunk___Z17MyOptionIntMapperv(__return_abi_buffer,); } }) } } diff --git a/rs_bindings_from_cc/test/function/inline/inline_rs_api.rs b/rs_bindings_from_cc/test/function/inline/inline_rs_api.rs index 9df3c2d65..0166209a6 100644 --- a/rs_bindings_from_cc/test/function/inline/inline_rs_api.rs +++ b/rs_bindings_from_cc/test/function/inline/inline_rs_api.rs @@ -57,7 +57,7 @@ impl Default for SomeStruct { /// Generated from: rs_bindings_from_cc/test/function/inline/inline.h;l=15 #[inline(always)] pub unsafe fn take_struct_by_const_ptr(s: *const crate::SomeStruct) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___Z24take_struct_by_const_ptrPK10SomeStruct(s) + unsafe { crate::detail::__rust_thunk___Z24take_struct_by_const_ptrPK10SomeStruct(s) } } /// This testcase helps verify that thunks correctly work with primitive types diff --git a/rs_bindings_from_cc/test/function/simple/simple_rs_api.rs b/rs_bindings_from_cc/test/function/simple/simple_rs_api.rs index 157164b92..285eec45a 100644 --- a/rs_bindings_from_cc/test/function/simple/simple_rs_api.rs +++ b/rs_bindings_from_cc/test/function/simple/simple_rs_api.rs @@ -40,7 +40,7 @@ pub fn return_reference() -> *mut ::ffi_11::c_int { /// Generated from: rs_bindings_from_cc/test/function/simple/simple.h;l=13 #[inline(always)] pub unsafe fn take_pointer(i: *mut ::ffi_11::c_int) { - crate::detail::__rust_thunk___Z12take_pointerPi(i) + unsafe { crate::detail::__rust_thunk___Z12take_pointerPi(i) } } /// # Safety @@ -51,7 +51,7 @@ pub unsafe fn take_pointer(i: *mut ::ffi_11::c_int) { /// Generated from: rs_bindings_from_cc/test/function/simple/simple.h;l=14 #[inline(always)] pub unsafe fn take_reference(i: *mut ::ffi_11::c_int) { - crate::detail::__rust_thunk___Z14take_referenceRi(i) + unsafe { crate::detail::__rust_thunk___Z14take_referenceRi(i) } } /// Generated from: rs_bindings_from_cc/test/function/simple/simple.h;l=15 @@ -68,7 +68,7 @@ pub fn forward_pointer(i: *const ::ffi_11::c_int) -> *const ::ffi_11::c_int { /// Generated from: rs_bindings_from_cc/test/function/simple/simple.h;l=17 #[inline(always)] pub unsafe fn forward_reference(i: *const ::ffi_11::c_int) -> *const ::ffi_11::c_int { - crate::detail::__rust_thunk___Z17forward_referenceRKi(i) + unsafe { crate::detail::__rust_thunk___Z17forward_referenceRKi(i) } } /// Generated from: rs_bindings_from_cc/test/function/simple/simple.h;l=18 diff --git a/rs_bindings_from_cc/test/global/global_rs_api.rs b/rs_bindings_from_cc/test/global/global_rs_api.rs index 411a71c4f..29586a4b7 100644 --- a/rs_bindings_from_cc/test/global/global_rs_api.rs +++ b/rs_bindings_from_cc/test/global/global_rs_api.rs @@ -14,11 +14,11 @@ #![allow(unused)] #![deny(warnings)] -extern "C" { +unsafe extern "C" { pub static mut extern_int: ::ffi_11::c_int; } -extern "C" { +unsafe extern "C" { pub static kExternConstInt: ::ffi_11::c_int; } @@ -73,12 +73,12 @@ pub fn GetInlineIntVal() -> ::ffi_11::c_int { pub const kAnonEnumConst: ::ffi_11::c_uint = ::ffi_11::new_c_uint(123); pub mod foo { - extern "C" { + unsafe extern "C" { #[link_name = "_ZN3foo21extern_int_namespacedE"] pub static mut extern_int_namespaced: ::ffi_11::c_int; } - extern "C" { + unsafe extern "C" { pub static mut extern_c_int_namespaced: ::ffi_11::c_int; } diff --git a/rs_bindings_from_cc/test/golden/c_abi_compatible_type_rs_api.rs b/rs_bindings_from_cc/test/golden/c_abi_compatible_type_rs_api.rs index 140d18818..775560385 100644 --- a/rs_bindings_from_cc/test/golden/c_abi_compatible_type_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/c_abi_compatible_type_rs_api.rs @@ -52,7 +52,7 @@ pub type MyTypedefDecl = ::ffi_11::c_int; /// * `b`: raw pointer #[inline(always)] pub unsafe fn f(a: crate::MyTypedefDecl, b: *mut ::ffi_11::c_void, c: ::ffi_11::c_int) { - crate::detail::__rust_thunk___Z1fiPvi(a, b, c) + unsafe { crate::detail::__rust_thunk___Z1fiPvi(a, b, c) } } mod detail { diff --git a/rs_bindings_from_cc/test/golden/callables_rs_api.rs b/rs_bindings_from_cc/test/golden/callables_rs_api.rs index 62546fff7..fb68b147d 100644 --- a/rs_bindings_from_cc/test/golden/callables_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/callables_rs_api.rs @@ -74,7 +74,7 @@ pub fn map_bridged( arg: crate::RustBridged, ) -> crate::RustBridged { unsafe { - ::bridge_rust::unstable_return!(@crate::RustBridgedAbi,crate::RustBridgedAbi,|__return_abi_buffer|{ crate::detail::__rust_thunk___Z11map_bridgedN6rs_std11DynCallableIKF7BridgedS1_EEES1_(__return_abi_buffer,::bridge_rust::unstable_encode!(@::dyn_callable_rs::DynCallableAbi::crate::RustBridged+::core::marker::Send+::core::marker::Sync+'static>::new(::alloc::boxed::Box::new(|_: crate::RustBridged|->crate::RustBridged{ ::core::panic!("moved-from value") }),),::dyn_callable_rs::DynCallableAbicrate::RustBridged+::core::marker::Send+::core::marker::Sync+'static>,f).as_ptr()as*const u8,::bridge_rust::unstable_encode!(@crate::RustBridgedAbi,crate::RustBridgedAbi,arg).as_ptr()as*const u8); }) + ::bridge_rust::unstable_return!(@crate::RustBridgedAbi,crate::RustBridgedAbi,|__return_abi_buffer|{ unsafe{ crate::detail::__rust_thunk___Z11map_bridgedN6rs_std11DynCallableIKF7BridgedS1_EEES1_(__return_abi_buffer,::bridge_rust::unstable_encode!(@::dyn_callable_rs::DynCallableAbi::crate::RustBridged+::core::marker::Send+::core::marker::Sync+'static>::new(::alloc::boxed::Box::new(|_: crate::RustBridged|->crate::RustBridged{ ::core::panic!("moved-from value") }),),::dyn_callable_rs::DynCallableAbicrate::RustBridged+::core::marker::Send+::core::marker::Sync+'static>,f).as_ptr()as*const u8,::bridge_rust::unstable_encode!(@crate::RustBridgedAbi,crate::RustBridgedAbi,arg).as_ptr()as*const u8); } }) } } @@ -137,7 +137,7 @@ unsafe impl ::cxx::ExternType for LayoutCompatible { impl LayoutCompatible { #[inline(always)] pub fn Create(x: ::ffi_11::c_int) -> crate::LayoutCompatible { - self::layout_compatible::Create(x) + unsafe { self::layout_compatible::Create(x) } } /// # Safety /// @@ -145,7 +145,7 @@ impl LayoutCompatible { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn get(__this: *const Self) -> ::ffi_11::c_int { - self::layout_compatible::get(__this) + unsafe { self::layout_compatible::get(__this) } } } @@ -167,7 +167,7 @@ pub mod layout_compatible { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn get(__this: *const crate::LayoutCompatible) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___ZNK16LayoutCompatible3getEv(__this) + unsafe { crate::detail::__rust_thunk___ZNK16LayoutCompatible3getEv(__this) } } } diff --git a/rs_bindings_from_cc/test/golden/callables_supported_rs_api.rs b/rs_bindings_from_cc/test/golden/callables_supported_rs_api.rs index 04cce1e90..022514a1f 100644 --- a/rs_bindings_from_cc/test/golden/callables_supported_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/callables_supported_rs_api.rs @@ -73,7 +73,7 @@ unsafe impl ::cxx::ExternType for LayoutCompatible { impl LayoutCompatible { #[inline(always)] pub fn Create(x: ::ffi_11::c_int) -> crate::LayoutCompatible { - self::layout_compatible::Create(x) + unsafe { self::layout_compatible::Create(x) } } /// # Safety /// @@ -81,7 +81,7 @@ impl LayoutCompatible { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn get(__this: *const Self) -> ::ffi_11::c_int { - self::layout_compatible::get(__this) + unsafe { self::layout_compatible::get(__this) } } } @@ -103,7 +103,7 @@ pub mod layout_compatible { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn get(__this: *const crate::LayoutCompatible) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___ZNK16LayoutCompatible3getEv(__this) + unsafe { crate::detail::__rust_thunk___ZNK16LayoutCompatible3getEv(__this) } } } diff --git a/rs_bindings_from_cc/test/golden/compatibility_rs_api.rs b/rs_bindings_from_cc/test/golden/compatibility_rs_api.rs index 38e9b84a0..06cd39601 100644 --- a/rs_bindings_from_cc/test/golden/compatibility_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/compatibility_rs_api.rs @@ -32,14 +32,14 @@ unsafe impl ::cxx::ExternType for CompatibleType { impl CompatibleType { #[inline(always)] pub fn renamed_default_constructor<'a>(self: ::core::pin::Pin<&'a mut Self>) { - self::compatible_type::renamed_default_constructor(self) + unsafe { self::compatible_type::renamed_default_constructor(self) } } #[inline(always)] pub fn renamed_constructor<'a>( self: ::core::pin::Pin<&'a mut Self>, __param_0: ::ffi_11::c_int, ) { - self::compatible_type::renamed_constructor(self, __param_0) + unsafe { self::compatible_type::renamed_constructor(self, __param_0) } } } diff --git a/rs_bindings_from_cc/test/golden/composable_bridging_rs_api.rs b/rs_bindings_from_cc/test/golden/composable_bridging_rs_api.rs index e6beed7b8..ccf311dc4 100644 --- a/rs_bindings_from_cc/test/golden/composable_bridging_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/composable_bridging_rs_api.rs @@ -20,7 +20,7 @@ #[inline(always)] pub fn ReturnCppStruct() -> crate::RustStruct { unsafe { - ::bridge_rust::unstable_return!(@crate::RustStructAbi,crate::RustStructAbi,|__return_abi_buffer|{ crate::detail::__rust_thunk___Z15ReturnCppStructv(__return_abi_buffer,); }) + ::bridge_rust::unstable_return!(@crate::RustStructAbi,crate::RustStructAbi,|__return_abi_buffer|{ unsafe{ crate::detail::__rust_thunk___Z15ReturnCppStructv(__return_abi_buffer,); } }) } } @@ -66,14 +66,14 @@ impl Default for Vec3 { #[inline(always)] pub fn MakeOptionalVec3(x: f32, y: f32, z: f32, is_present: bool) -> crate::MyOption { unsafe { - ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi>,|__return_abi_buffer|{ crate::detail::__rust_thunk___Z16MakeOptionalVec3fffb(__return_abi_buffer,x,y,z,is_present); }) + ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi>,|__return_abi_buffer|{ unsafe{ crate::detail::__rust_thunk___Z16MakeOptionalVec3fffb(__return_abi_buffer,x,y,z,is_present); } }) } } #[inline(always)] pub fn MapMultiply(v: crate::MyOption, factor: f32) -> crate::MyOption { unsafe { - ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi>,|__return_abi_buffer|{ crate::detail::__rust_thunk___Z11MapMultiply8MyOptionI4Vec3Ef(__return_abi_buffer,::bridge_rust::unstable_encode!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi>,v).as_ptr()as*const u8,factor); }) + ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi>,|__return_abi_buffer|{ unsafe{ crate::detail::__rust_thunk___Z11MapMultiply8MyOptionI4Vec3Ef(__return_abi_buffer,::bridge_rust::unstable_encode!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi>,v).as_ptr()as*const u8,factor); } }) } } @@ -82,7 +82,7 @@ pub fn MapMultiply(v: crate::MyOption, factor: f32) -> crate::MyOpt #[inline(always)] pub fn MakeMyI8Struct() -> crate::MyOption { unsafe { - ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi>,|__return_abi_buffer|{ crate::detail::__rust_thunk___Z14MakeMyI8Structv(__return_abi_buffer,); }) + ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi>,|__return_abi_buffer|{ unsafe{ crate::detail::__rust_thunk___Z14MakeMyI8Structv(__return_abi_buffer,); } }) } } @@ -92,13 +92,15 @@ pub fn MakeMyI8Struct() -> crate::MyOption { /// * `slice`: raw pointer #[inline(always)] pub unsafe fn InspectStringViews(slice: *mut [::cc_std::std::__u::raw_string_view]) { - crate::detail::__rust_thunk___Z18InspectStringViewsN6rs_std8SliceRefINSt3__u17basic_string_viewIcNS1_11char_traitsIcEEEEEE(slice) + unsafe { + crate::detail::__rust_thunk___Z18InspectStringViewsN6rs_std8SliceRefINSt3__u17basic_string_viewIcNS1_11char_traitsIcEEEEEE(slice) + } } #[inline(always)] pub fn MaybeVoidPtr() -> crate::MyOption<*mut ::ffi_11::c_void> { unsafe { - ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::<*mut::ffi_11::c_void>()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi<*mut::ffi_11::c_void>>,|__return_abi_buffer|{ crate::detail::__rust_thunk___Z12MaybeVoidPtrv(__return_abi_buffer,); }) + ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::<*mut::ffi_11::c_void>()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi<*mut::ffi_11::c_void>>,|__return_abi_buffer|{ unsafe{ crate::detail::__rust_thunk___Z12MaybeVoidPtrv(__return_abi_buffer,); } }) } } @@ -110,13 +112,15 @@ pub fn MaybeVoidPtr() -> crate::MyOption<*mut ::ffi_11::c_void> { pub unsafe fn AcceptsSliceAndReturnsStatusErrorIfEmpty( slice: *const [::ffi_11::c_int], ) -> crate::MyOption<*const [::ffi_11::c_int]> { - ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::<*const[::ffi_11::c_int]>()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi<*const[::ffi_11::c_int]>>,|__return_abi_buffer|{ crate::detail::__rust_thunk___Z40AcceptsSliceAndReturnsStatusErrorIfEmptyN6rs_std8SliceRefIKiEE(__return_abi_buffer,slice); }) + unsafe { + ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::<*const[::ffi_11::c_int]>()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi<*const[::ffi_11::c_int]>>,|__return_abi_buffer|{ unsafe{ crate::detail::__rust_thunk___Z40AcceptsSliceAndReturnsStatusErrorIfEmptyN6rs_std8SliceRefIKiEE(__return_abi_buffer,slice); } }) + } } #[inline(always)] pub fn ReturnsCStrArray() -> crate::MyOption<*mut *const ::ffi_11::c_char> { unsafe { - ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::<*mut*const::ffi_11::c_char>()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi<*mut*const::ffi_11::c_char>>,|__return_abi_buffer|{ crate::detail::__rust_thunk___Z16ReturnsCStrArrayv(__return_abi_buffer,); }) + ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::<*mut*const::ffi_11::c_char>()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi<*mut*const::ffi_11::c_char>>,|__return_abi_buffer|{ unsafe{ crate::detail::__rust_thunk___Z16ReturnsCStrArrayv(__return_abi_buffer,); } }) } } @@ -143,7 +147,7 @@ impl From for ::ffi_11::c_int { #[inline(always)] pub fn ReturnsDefaultEnumInComposableBridgeType() -> crate::MyOption { unsafe { - ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi>,|__return_abi_buffer|{ crate::detail::__rust_thunk___Z40ReturnsDefaultEnumInComposableBridgeTypev(__return_abi_buffer,); }) + ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi>,|__return_abi_buffer|{ unsafe{ crate::detail::__rust_thunk___Z40ReturnsDefaultEnumInComposableBridgeTypev(__return_abi_buffer,); } }) } } @@ -170,7 +174,7 @@ impl From for ::ffi_11::c_long { #[inline(always)] pub fn ReturnsI64EnumInComposableBridgeType() -> crate::MyOption { unsafe { - ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi>,|__return_abi_buffer|{ crate::detail::__rust_thunk___Z36ReturnsI64EnumInComposableBridgeTypev(__return_abi_buffer,); }) + ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi>,|__return_abi_buffer|{ unsafe{ crate::detail::__rust_thunk___Z36ReturnsI64EnumInComposableBridgeTypev(__return_abi_buffer,); } }) } } @@ -200,7 +204,7 @@ pub mod some_namespace { pub fn ReturnsEnumInNamespaceInComposableBridgeType( ) -> crate::MyOption { unsafe { - ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi>,|__return_abi_buffer|{ crate::detail::__rust_thunk___Z44ReturnsEnumInNamespaceInComposableBridgeTypev(__return_abi_buffer,); }) + ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi>,|__return_abi_buffer|{ unsafe{ crate::detail::__rust_thunk___Z44ReturnsEnumInNamespaceInComposableBridgeTypev(__return_abi_buffer,); } }) } } diff --git a/rs_bindings_from_cc/test/golden/composable_bridging_template_type_rs_api.rs b/rs_bindings_from_cc/test/golden/composable_bridging_template_type_rs_api.rs index 6f951e005..4aa7b5132 100644 --- a/rs_bindings_from_cc/test/golden/composable_bridging_template_type_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/composable_bridging_template_type_rs_api.rs @@ -22,7 +22,7 @@ #[inline(always)] pub fn ReturnsValue() -> crate::MyOption { unsafe { - ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi>,|__return_abi_buffer|{ crate::detail::__rust_thunk___Z12ReturnsValuev(__return_abi_buffer,); }) + ::bridge_rust::unstable_return!(@crate::MyOptionAbi(::bridge_rust::transmute_abi::()),crate::MyOptionAbi<::bridge_rust::TransmuteAbi>,|__return_abi_buffer|{ unsafe{ crate::detail::__rust_thunk___Z12ReturnsValuev(__return_abi_buffer,); } }) } } diff --git a/rs_bindings_from_cc/test/golden/doc_comment_rs_api.rs b/rs_bindings_from_cc/test/golden/doc_comment_rs_api.rs index 9a8c17a8e..282524bad 100644 --- a/rs_bindings_from_cc/test/golden/doc_comment_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/doc_comment_rs_api.rs @@ -34,17 +34,17 @@ impl DocCommentSlashes { /// A non-static member function (`const` flavor). #[inline(always)] pub fn get_field_value<'a>(&'a self) -> ::ffi_11::c_int { - self::doc_comment_slashes::get_field_value(self) + unsafe { self::doc_comment_slashes::get_field_value(self) } } /// A non-static member function (non-`const` flavor). #[inline(always)] pub fn set_field_value<'a>(&'a mut self, new_value: ::ffi_11::c_int) { - self::doc_comment_slashes::set_field_value(self, new_value) + unsafe { self::doc_comment_slashes::set_field_value(self, new_value) } } /// A static method. #[inline(always)] pub fn static_method() -> ::ffi_11::c_int { - self::doc_comment_slashes::static_method() + unsafe { self::doc_comment_slashes::static_method() } } } diff --git a/rs_bindings_from_cc/test/golden/inheritance_rs_api.rs b/rs_bindings_from_cc/test/golden/inheritance_rs_api.rs index c3b5646e9..c0c1d0dd0 100644 --- a/rs_bindings_from_cc/test/golden/inheritance_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/inheritance_rs_api.rs @@ -198,7 +198,7 @@ impl ::ctor::CtorNew<()> for VirtualBase1 { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN12VirtualBase1C1Ev( dest as *mut ::core::ffi::c_void, ); @@ -241,7 +241,7 @@ impl ::ctor::CtorNew<()> for VirtualBase2 { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN12VirtualBase2C1Ev( dest as *mut ::core::ffi::c_void, ); @@ -284,7 +284,7 @@ impl ::ctor::CtorNew<()> for VirtualDerived { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN14VirtualDerivedC1Ev( dest as *mut ::core::ffi::c_void, ); @@ -346,7 +346,7 @@ unsafe impl ::cxx::ExternType for MethodBase1 { impl MethodBase1 { #[inline(always)] pub fn Public<'a>(&'a mut self) { - self::method_base1::Public(self) + unsafe { self::method_base1::Public(self) } } /// # Safety /// @@ -354,15 +354,15 @@ impl MethodBase1 { /// * `__param_0`: raw pointer #[inline(always)] pub unsafe fn Equals<'a>(&'a mut self, __param_0: *const Self) { - self::method_base1::Equals(self, __param_0) + unsafe { self::method_base1::Equals(self, __param_0) } } #[inline(always)] pub fn Colliding1<'a>(&'a mut self) { - self::method_base1::Colliding1(self) + unsafe { self::method_base1::Colliding1(self) } } #[inline(always)] pub fn Colliding2<'a>(&'a mut self) { - self::method_base1::Colliding2(self) + unsafe { self::method_base1::Colliding2(self) } } } @@ -405,7 +405,7 @@ pub mod method_base1 { __this: &'a mut crate::MethodBase1, __param_0: *const crate::MethodBase1, ) { - crate::detail::__rust_thunk___ZN11MethodBase16EqualsEPKS_(__this, __param_0) + unsafe { crate::detail::__rust_thunk___ZN11MethodBase16EqualsEPKS_(__this, __param_0) } } #[inline(always)] pub fn Colliding1<'a>(__this: &'a mut crate::MethodBase1) { @@ -432,11 +432,11 @@ unsafe impl ::cxx::ExternType for MethodBase2 { impl MethodBase2 { #[inline(always)] pub fn Colliding1<'a>(&'a mut self) { - self::method_base2::Colliding1(self) + unsafe { self::method_base2::Colliding1(self) } } #[inline(always)] pub fn Colliding2<'a>(&'a mut self) { - self::method_base2::Colliding2(self) + unsafe { self::method_base2::Colliding2(self) } } } diff --git a/rs_bindings_from_cc/test/golden/lifetimes_rs_api.rs b/rs_bindings_from_cc/test/golden/lifetimes_rs_api.rs index f6b2bca06..0f5eb16d8 100644 --- a/rs_bindings_from_cc/test/golden/lifetimes_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/lifetimes_rs_api.rs @@ -43,7 +43,7 @@ pub fn AddAnotherHookWithTypedef(hook: extern "C" fn()) { /// * `pair`: raw pointer #[inline(always)] pub unsafe fn ConsumeArray(pair: *mut ::ffi_11::c_int) { - crate::detail::__rust_thunk___Z12ConsumeArrayPi(pair) + unsafe { crate::detail::__rust_thunk___Z12ConsumeArrayPi(pair) } } // error: type alias `Arr` could not be bound @@ -55,7 +55,7 @@ pub unsafe fn ConsumeArray(pair: *mut ::ffi_11::c_int) { /// * `__param_0`: raw pointer #[inline(always)] pub unsafe fn ConsumeArrayWithTypedef(__param_0: *mut ::ffi_11::c_int) { - crate::detail::__rust_thunk___Z23ConsumeArrayWithTypedefPi(__param_0) + unsafe { crate::detail::__rust_thunk___Z23ConsumeArrayWithTypedefPi(__param_0) } } mod detail { diff --git a/rs_bindings_from_cc/test/golden/method_access_rs_api.rs b/rs_bindings_from_cc/test/golden/method_access_rs_api.rs index b28bd7823..097dc7c94 100644 --- a/rs_bindings_from_cc/test/golden/method_access_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/method_access_rs_api.rs @@ -32,7 +32,7 @@ impl Struct { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn AccessNone(__this: *mut Self) { - self::r#struct::AccessNone(__this) + unsafe { self::r#struct::AccessNone(__this) } } /// # Safety /// @@ -40,7 +40,7 @@ impl Struct { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn AccessPublic(__this: *mut Self) { - self::r#struct::AccessPublic(__this) + unsafe { self::r#struct::AccessPublic(__this) } } } @@ -62,7 +62,7 @@ pub mod r#struct { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn AccessNone(__this: *mut crate::Struct) { - crate::detail::__rust_thunk___ZN6Struct10AccessNoneEv(__this) + unsafe { crate::detail::__rust_thunk___ZN6Struct10AccessNoneEv(__this) } } /// # Safety /// @@ -70,7 +70,7 @@ pub mod r#struct { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn AccessPublic(__this: *mut crate::Struct) { - crate::detail::__rust_thunk___ZN6Struct12AccessPublicEv(__this) + unsafe { crate::detail::__rust_thunk___ZN6Struct12AccessPublicEv(__this) } } } @@ -93,7 +93,7 @@ impl Class { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn AccessPublic(__this: *mut Self) { - self::class::AccessPublic(__this) + unsafe { self::class::AccessPublic(__this) } } } @@ -115,7 +115,7 @@ pub mod class { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn AccessPublic(__this: *mut crate::Class) { - crate::detail::__rust_thunk___ZN5Class12AccessPublicEv(__this) + unsafe { crate::detail::__rust_thunk___ZN5Class12AccessPublicEv(__this) } } } diff --git a/rs_bindings_from_cc/test/golden/method_qualifiers_rs_api.rs b/rs_bindings_from_cc/test/golden/method_qualifiers_rs_api.rs index 7f15d81b3..2d9d9b54b 100644 --- a/rs_bindings_from_cc/test/golden/method_qualifiers_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/method_qualifiers_rs_api.rs @@ -32,7 +32,7 @@ impl Noninline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn UnqualifiedMethod(__this: *mut Self) { - self::noninline::UnqualifiedMethod(__this) + unsafe { self::noninline::UnqualifiedMethod(__this) } } /// # Safety /// @@ -40,7 +40,7 @@ impl Noninline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn LvalueMethod(__this: *mut Self) { - self::noninline::LvalueMethod(__this) + unsafe { self::noninline::LvalueMethod(__this) } } /// # Safety /// @@ -48,7 +48,7 @@ impl Noninline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn LvalueMethodConst(__this: *const Self) { - self::noninline::LvalueMethodConst(__this) + unsafe { self::noninline::LvalueMethodConst(__this) } } /// # Safety /// @@ -56,7 +56,7 @@ impl Noninline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn RvalueMethod(__this: *mut Self) { - self::noninline::RvalueMethod(__this) + unsafe { self::noninline::RvalueMethod(__this) } } /// # Safety /// @@ -64,7 +64,7 @@ impl Noninline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn RvalueMethodConst(__this: *const Self) { - self::noninline::RvalueMethodConst(__this) + unsafe { self::noninline::RvalueMethodConst(__this) } } } @@ -86,7 +86,7 @@ pub mod noninline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn UnqualifiedMethod(__this: *mut crate::Noninline) { - crate::detail::__rust_thunk___ZN9Noninline17UnqualifiedMethodEv(__this) + unsafe { crate::detail::__rust_thunk___ZN9Noninline17UnqualifiedMethodEv(__this) } } /// # Safety /// @@ -94,7 +94,7 @@ pub mod noninline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn LvalueMethod(__this: *mut crate::Noninline) { - crate::detail::__rust_thunk___ZNR9Noninline12LvalueMethodEv(__this) + unsafe { crate::detail::__rust_thunk___ZNR9Noninline12LvalueMethodEv(__this) } } /// # Safety /// @@ -102,7 +102,7 @@ pub mod noninline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn LvalueMethodConst(__this: *const crate::Noninline) { - crate::detail::__rust_thunk___ZNKR9Noninline17LvalueMethodConstEv(__this) + unsafe { crate::detail::__rust_thunk___ZNKR9Noninline17LvalueMethodConstEv(__this) } } /// # Safety /// @@ -110,7 +110,7 @@ pub mod noninline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn RvalueMethod(__this: *mut crate::Noninline) { - crate::detail::__rust_thunk___ZNO9Noninline12RvalueMethodEv(__this) + unsafe { crate::detail::__rust_thunk___ZNO9Noninline12RvalueMethodEv(__this) } } /// # Safety /// @@ -118,7 +118,7 @@ pub mod noninline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn RvalueMethodConst(__this: *const crate::Noninline) { - crate::detail::__rust_thunk___ZNKO9Noninline17RvalueMethodConstEv(__this) + unsafe { crate::detail::__rust_thunk___ZNKO9Noninline17RvalueMethodConstEv(__this) } } } @@ -141,7 +141,7 @@ impl Inline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn UnqualifiedMethod(__this: *mut Self) { - self::inline::UnqualifiedMethod(__this) + unsafe { self::inline::UnqualifiedMethod(__this) } } /// # Safety /// @@ -149,7 +149,7 @@ impl Inline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn LvalueMethod(__this: *mut Self) { - self::inline::LvalueMethod(__this) + unsafe { self::inline::LvalueMethod(__this) } } /// # Safety /// @@ -157,7 +157,7 @@ impl Inline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn LvalueMethodConst(__this: *const Self) { - self::inline::LvalueMethodConst(__this) + unsafe { self::inline::LvalueMethodConst(__this) } } /// # Safety /// @@ -165,7 +165,7 @@ impl Inline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn RvalueMethod(__this: *mut Self) { - self::inline::RvalueMethod(__this) + unsafe { self::inline::RvalueMethod(__this) } } /// # Safety /// @@ -173,7 +173,7 @@ impl Inline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn RvalueMethodConst(__this: *const Self) { - self::inline::RvalueMethodConst(__this) + unsafe { self::inline::RvalueMethodConst(__this) } } } @@ -195,7 +195,7 @@ pub mod inline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn UnqualifiedMethod(__this: *mut crate::Inline) { - crate::detail::__rust_thunk___ZN6Inline17UnqualifiedMethodEv(__this) + unsafe { crate::detail::__rust_thunk___ZN6Inline17UnqualifiedMethodEv(__this) } } /// # Safety /// @@ -203,7 +203,7 @@ pub mod inline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn LvalueMethod(__this: *mut crate::Inline) { - crate::detail::__rust_thunk___ZNR6Inline12LvalueMethodEv(__this) + unsafe { crate::detail::__rust_thunk___ZNR6Inline12LvalueMethodEv(__this) } } /// # Safety /// @@ -211,7 +211,7 @@ pub mod inline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn LvalueMethodConst(__this: *const crate::Inline) { - crate::detail::__rust_thunk___ZNKR6Inline17LvalueMethodConstEv(__this) + unsafe { crate::detail::__rust_thunk___ZNKR6Inline17LvalueMethodConstEv(__this) } } /// # Safety /// @@ -219,7 +219,7 @@ pub mod inline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn RvalueMethod(__this: *mut crate::Inline) { - crate::detail::__rust_thunk___ZNO6Inline12RvalueMethodEv(__this) + unsafe { crate::detail::__rust_thunk___ZNO6Inline12RvalueMethodEv(__this) } } /// # Safety /// @@ -227,7 +227,7 @@ pub mod inline { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn RvalueMethodConst(__this: *const crate::Inline) { - crate::detail::__rust_thunk___ZNKO6Inline17RvalueMethodConstEv(__this) + unsafe { crate::detail::__rust_thunk___ZNKO6Inline17RvalueMethodConstEv(__this) } } } diff --git a/rs_bindings_from_cc/test/golden/no_elided_lifetimes_rs_api.rs b/rs_bindings_from_cc/test/golden/no_elided_lifetimes_rs_api.rs index 7203c1e16..17ab43a44 100644 --- a/rs_bindings_from_cc/test/golden/no_elided_lifetimes_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/no_elided_lifetimes_rs_api.rs @@ -19,7 +19,7 @@ /// * `p1`: raw pointer #[inline(always)] pub unsafe fn free_function(p1: *mut ::ffi_11::c_int) -> *mut ::ffi_11::c_int { - crate::detail::__rust_thunk___Z13free_functionRi(p1) + unsafe { crate::detail::__rust_thunk___Z13free_functionRi(p1) } } #[derive(Clone, Copy, ::ctor::MoveAndAssignViaCopy)] @@ -47,7 +47,7 @@ impl S { p1: *mut ::ffi_11::c_int, p2: *mut ::ffi_11::c_int, ) -> *mut ::ffi_11::c_int { - self::s::const_method(__this, p1, p2) + unsafe { self::s::const_method(__this, p1, p2) } } /// # Safety /// @@ -61,7 +61,7 @@ impl S { p1: *mut ::ffi_11::c_int, p2: *mut ::ffi_11::c_int, ) -> *mut ::ffi_11::c_int { - self::s::method(__this, p1, p2) + unsafe { self::s::method(__this, p1, p2) } } } @@ -89,7 +89,7 @@ pub mod s { p1: *mut ::ffi_11::c_int, p2: *mut ::ffi_11::c_int, ) -> *mut ::ffi_11::c_int { - crate::detail::__rust_thunk___ZNK1S12const_methodERiS0_(__this, p1, p2) + unsafe { crate::detail::__rust_thunk___ZNK1S12const_methodERiS0_(__this, p1, p2) } } /// # Safety /// @@ -103,7 +103,7 @@ pub mod s { p1: *mut ::ffi_11::c_int, p2: *mut ::ffi_11::c_int, ) -> *mut ::ffi_11::c_int { - crate::detail::__rust_thunk___ZN1S6methodERiS0_(__this, p1, p2) + unsafe { crate::detail::__rust_thunk___ZN1S6methodERiS0_(__this, p1, p2) } } } @@ -140,7 +140,7 @@ impl<'__unelided> ::ctor::CtorNew<&'__unelided Self> fn ctor_new(args: &'__unelided Self) -> Self::CtorType { let mut __param_0 = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN44TriviallyCopyableButNontriviallyDestructibleC1ERKS_(dest as*mut::core::ffi::c_void,__param_0); }) } @@ -161,7 +161,9 @@ impl<'__unelided> ::ctor::CtorNew<(&'__unelided Self,)> impl ::ctor::PinnedDrop for TriviallyCopyableButNontriviallyDestructible { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN44TriviallyCopyableButNontriviallyDestructibleD1Ev(self) + unsafe { + crate::detail::__rust_thunk___ZN44TriviallyCopyableButNontriviallyDestructibleD1Ev(self) + } } } @@ -171,7 +173,7 @@ impl ::ctor::PinnedDrop for TriviallyCopyableButNontriviallyDestructible { /// * `p`: raw pointer #[inline(always)] pub unsafe fn take_pointer(p: *mut ::ffi_11::c_int) { - crate::detail::__rust_thunk___Z12take_pointerPi(p) + unsafe { crate::detail::__rust_thunk___Z12take_pointerPi(p) } } #[derive(Clone, Copy, ::ctor::MoveAndAssignViaCopy)] diff --git a/rs_bindings_from_cc/test/golden/no_unique_address_rs_api.rs b/rs_bindings_from_cc/test/golden/no_unique_address_rs_api.rs index 8a5629e72..05bd55c0d 100644 --- a/rs_bindings_from_cc/test/golden/no_unique_address_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/no_unique_address_rs_api.rs @@ -41,7 +41,7 @@ unsafe impl ::cxx::ExternType for Struct { impl Struct { #[inline(always)] pub fn Make(f1: ::ffi_11::c_int, f2: ::ffi_11::c_char) -> crate::Struct { - self::r#struct::Make(f1, f2) + unsafe { self::r#struct::Make(f1, f2) } } } @@ -112,7 +112,7 @@ unsafe impl ::cxx::ExternType for PaddingBetweenFields { impl PaddingBetweenFields { #[inline(always)] pub fn Make(f1: ::ffi_11::c_char, f2: ::ffi_11::c_int) -> crate::PaddingBetweenFields { - self::padding_between_fields::Make(f1, f2) + unsafe { self::padding_between_fields::Make(f1, f2) } } } @@ -184,7 +184,7 @@ impl ::ctor::CtorNew<()> for FieldInTailPadding_InnerStruct { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN30FieldInTailPadding_InnerStructC1Ev( dest as *mut ::core::ffi::c_void, ); @@ -205,7 +205,7 @@ impl ::ctor::CtorNew<()> for FieldInTailPadding_InnerStruct { impl ::ctor::PinnedDrop for FieldInTailPadding_InnerStruct { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN30FieldInTailPadding_InnerStructD1Ev(self) + unsafe { crate::detail::__rust_thunk___ZN30FieldInTailPadding_InnerStructD1Ev(self) } } } @@ -244,7 +244,7 @@ unsafe impl ::cxx::ExternType for FieldInTailPadding { impl ::ctor::PinnedDrop for FieldInTailPadding { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN18FieldInTailPaddingD1Ev(self) + unsafe { crate::detail::__rust_thunk___ZN18FieldInTailPaddingD1Ev(self) } } } @@ -263,7 +263,7 @@ impl ::ctor::CtorNew<(::ffi_11::c_int, ::ffi_11::c_char, ::ffi_11::c_char)> for fn ctor_new(args: (::ffi_11::c_int, ::ffi_11::c_char, ::ffi_11::c_char)) -> Self::CtorType { let (mut inner_int, mut inner_char, mut outer_char) = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN18FieldInTailPaddingC1Eicc( dest as *mut ::core::ffi::c_void, inner_int, diff --git a/rs_bindings_from_cc/test/golden/noexcept_rs_api.rs b/rs_bindings_from_cc/test/golden/noexcept_rs_api.rs index e5fcda779..043749349 100644 --- a/rs_bindings_from_cc/test/golden/noexcept_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/noexcept_rs_api.rs @@ -28,7 +28,7 @@ unsafe impl ::cxx::ExternType for SomeClass { impl SomeClass { #[inline(always)] pub fn create(i: ::ffi_11::c_int, c: ::ffi_11::c_char) { - self::some_class::create(i, c) + unsafe { self::some_class::create(i, c) } } /// # Safety /// @@ -36,7 +36,7 @@ impl SomeClass { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn no_except_member(__this: *mut Self) { - self::some_class::no_except_member(__this) + unsafe { self::some_class::no_except_member(__this) } } /// # Safety /// @@ -44,7 +44,7 @@ impl SomeClass { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn no_except_true_member(__this: *mut Self) { - self::some_class::no_except_true_member(__this) + unsafe { self::some_class::no_except_true_member(__this) } } /// # Safety /// @@ -52,7 +52,7 @@ impl SomeClass { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn no_except_false_member(__this: *mut Self) { - self::some_class::no_except_false_member(__this) + unsafe { self::some_class::no_except_false_member(__this) } } } @@ -78,7 +78,7 @@ pub mod some_class { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn no_except_member(__this: *mut crate::SomeClass) { - crate::detail::__rust_thunk___ZN9SomeClass16no_except_memberEv(__this) + unsafe { crate::detail::__rust_thunk___ZN9SomeClass16no_except_memberEv(__this) } } /// # Safety /// @@ -86,7 +86,7 @@ pub mod some_class { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn no_except_true_member(__this: *mut crate::SomeClass) { - crate::detail::__rust_thunk___ZN9SomeClass21no_except_true_memberEv(__this) + unsafe { crate::detail::__rust_thunk___ZN9SomeClass21no_except_true_memberEv(__this) } } /// # Safety /// @@ -94,7 +94,7 @@ pub mod some_class { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn no_except_false_member(__this: *mut crate::SomeClass) { - crate::detail::__rust_thunk___ZN9SomeClass22no_except_false_memberEv(__this) + unsafe { crate::detail::__rust_thunk___ZN9SomeClass22no_except_false_memberEv(__this) } } } diff --git a/rs_bindings_from_cc/test/golden/nontrivial_type_rs_api.rs b/rs_bindings_from_cc/test/golden/nontrivial_type_rs_api.rs index 74f5f1244..5d9a1c0d8 100644 --- a/rs_bindings_from_cc/test/golden/nontrivial_type_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/nontrivial_type_rs_api.rs @@ -34,19 +34,19 @@ unsafe impl ::cxx::ExternType for Nontrivial { impl Nontrivial { #[inline(always)] pub fn Unqualified<'a>(self: ::core::pin::Pin<&'a mut Self>) { - self::nontrivial::Unqualified(self) + unsafe { self::nontrivial::Unqualified(self) } } #[inline(always)] pub fn ConstQualified<'a>(&'a self) { - self::nontrivial::ConstQualified(self) + unsafe { self::nontrivial::ConstQualified(self) } } #[inline(always)] pub fn LvalueRefQualified<'a>(self: ::core::pin::Pin<&'a mut Self>) { - self::nontrivial::LvalueRefQualified(self) + unsafe { self::nontrivial::LvalueRefQualified(self) } } #[inline(always)] pub fn ConstLvalueRefQualified<'a>(&'a self) { - self::nontrivial::ConstLvalueRefQualified(self) + unsafe { self::nontrivial::ConstLvalueRefQualified(self) } } } @@ -57,7 +57,7 @@ impl ::ctor::CtorNew<()> for Nontrivial { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN10NontrivialC1Ev(dest as *mut ::core::ffi::c_void); }) } @@ -71,7 +71,7 @@ impl ::ctor::CtorNew<::ffi_11::c_int> for Nontrivial { fn ctor_new(args: ::ffi_11::c_int) -> Self::CtorType { let mut field = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN10NontrivialC1Ei( dest as *mut ::core::ffi::c_void, field, @@ -97,7 +97,7 @@ impl ::ctor::CtorNew<(::ffi_11::c_int, ::ffi_11::c_int)> for Nontrivial { fn ctor_new(args: (::ffi_11::c_int, ::ffi_11::c_int)) -> Self::CtorType { let (mut field, mut unused) = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN10NontrivialC1Eii( dest as *mut ::core::ffi::c_void, field, @@ -130,11 +130,13 @@ impl ::ctor::Assign for Nontrivial { fn assign<'a>(self: ::core::pin::Pin<&'a mut Self>, __param_0: f32) { unsafe { let _ = ::ctor::emplace!(::ctor::FnCtor::new(move |dest: *mut Self| { - crate::detail::__rust_thunk___ZN10NontrivialaSEf( - dest as *mut ::core::ffi::c_void, - self, - __param_0, - ); + unsafe { + crate::detail::__rust_thunk___ZN10NontrivialaSEf( + dest as *mut ::core::ffi::c_void, + self, + __param_0, + ); + } })); } } @@ -143,7 +145,7 @@ impl ::ctor::Assign for Nontrivial { impl ::ctor::PinnedDrop for Nontrivial { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN10NontrivialD1Ev(self) + unsafe { crate::detail::__rust_thunk___ZN10NontrivialD1Ev(self) } } } @@ -207,7 +209,7 @@ unsafe impl ::cxx::ExternType for NontrivialInline { impl NontrivialInline { #[inline(always)] pub fn MemberFunction<'a>(self: ::core::pin::Pin<&'a mut Self>) { - self::nontrivial_inline::MemberFunction(self) + unsafe { self::nontrivial_inline::MemberFunction(self) } } } @@ -218,7 +220,7 @@ impl ::ctor::CtorNew<()> for NontrivialInline { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN16NontrivialInlineC1Ev( dest as *mut ::core::ffi::c_void, ); @@ -234,7 +236,7 @@ impl ::ctor::CtorNew<::ffi_11::c_int> for NontrivialInline { fn ctor_new(args: ::ffi_11::c_int) -> Self::CtorType { let mut field = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN16NontrivialInlineC1Ei( dest as *mut ::core::ffi::c_void, field, @@ -260,7 +262,7 @@ impl ::ctor::CtorNew<(::ffi_11::c_int, ::ffi_11::c_int)> for NontrivialInline { fn ctor_new(args: (::ffi_11::c_int, ::ffi_11::c_int)) -> Self::CtorType { let (mut field, mut unused) = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN16NontrivialInlineC1Eii( dest as *mut ::core::ffi::c_void, field, @@ -291,7 +293,7 @@ impl ::ctor::CtorNew<(::ffi_11::c_int, ::ffi_11::c_int)> for NontrivialInline { impl ::ctor::PinnedDrop for NontrivialInline { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN16NontrivialInlineD1Ev(self) + unsafe { crate::detail::__rust_thunk___ZN16NontrivialInlineD1Ev(self) } } } @@ -329,7 +331,7 @@ impl ::ctor::CtorNew<()> for NontrivialMembers { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN17NontrivialMembersC1Ev( dest as *mut ::core::ffi::c_void, ); @@ -347,7 +349,7 @@ impl ::ctor::CtorNew<()> for NontrivialMembers { impl ::ctor::PinnedDrop for NontrivialMembers { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN17NontrivialMembersD1Ev(self) + unsafe { crate::detail::__rust_thunk___ZN17NontrivialMembersD1Ev(self) } } } @@ -375,7 +377,7 @@ unsafe impl ::cxx::ExternType for NontrivialUnpin { impl NontrivialUnpin { #[inline(always)] pub fn MemberFunction<'a>(&'a mut self) { - self::nontrivial_unpin::MemberFunction(self) + unsafe { self::nontrivial_unpin::MemberFunction(self) } } } @@ -473,7 +475,7 @@ pub fn TakesByValue( nontrivial: ::ctor::Ctor![crate::Nontrivial], ) -> ::ctor::Ctor![crate::Nontrivial] { unsafe { - ::ctor::FnCtor::new(move |dest: *mut crate::Nontrivial| { + ::ctor::FnCtor::new(move |dest: *mut crate::Nontrivial| unsafe { crate::detail::__rust_thunk___Z12TakesByValue10Nontrivial( dest as *mut ::core::ffi::c_void, ::core::pin::Pin::into_inner_unchecked(::ctor::emplace!(nontrivial)), @@ -487,7 +489,7 @@ pub fn TakesByValueInline( nontrivial: ::ctor::Ctor![crate::NontrivialInline], ) -> ::ctor::Ctor![crate::NontrivialInline] { unsafe { - ::ctor::FnCtor::new(move |dest: *mut crate::NontrivialInline| { + ::ctor::FnCtor::new(move |dest: *mut crate::NontrivialInline| unsafe { crate::detail::__rust_thunk___Z18TakesByValueInline16NontrivialInline( dest as *mut ::core::ffi::c_void, ::core::pin::Pin::into_inner_unchecked(::ctor::emplace!(nontrivial)), @@ -618,7 +620,7 @@ unsafe impl ::cxx::ExternType for Nonmovable { impl Nonmovable { #[inline(always)] pub fn MemberFunction<'a>(self: ::core::pin::Pin<&'a mut Self>) { - self::nonmovable::MemberFunction(self) + unsafe { self::nonmovable::MemberFunction(self) } } } @@ -629,7 +631,7 @@ impl ::ctor::CtorNew<()> for Nonmovable { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN10NonmovableC1Ev(dest as *mut ::core::ffi::c_void); }) } @@ -639,7 +641,7 @@ impl ::ctor::CtorNew<()> for Nonmovable { impl ::ctor::PinnedDrop for Nonmovable { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN10NonmovableD1Ev(self) + unsafe { crate::detail::__rust_thunk___ZN10NonmovableD1Ev(self) } } } @@ -669,7 +671,7 @@ where #[inline(always)] pub fn ReturnsNonmovableByValue() -> ::ctor::Ctor![crate::Nonmovable] { unsafe { - ::ctor::FnCtor::new(move |dest: *mut crate::Nonmovable| { + ::ctor::FnCtor::new(move |dest: *mut crate::Nonmovable| unsafe { crate::detail::__rust_thunk___Z24ReturnsNonmovableByValuev( dest as *mut ::core::ffi::c_void, ); diff --git a/rs_bindings_from_cc/test/golden/operators_rs_api.rs b/rs_bindings_from_cc/test/golden/operators_rs_api.rs index c4e244dd8..99c0c3a3d 100644 --- a/rs_bindings_from_cc/test/golden/operators_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/operators_rs_api.rs @@ -480,7 +480,7 @@ impl ::ctor::CtorNew<()> for AddableConstMemberNonunpin { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN26AddableConstMemberNonunpinC1Ev( dest as *mut ::core::ffi::c_void, ); @@ -502,7 +502,7 @@ impl ::ctor::CtorNew<()> for AddableConstMemberNonunpin { impl ::ctor::PinnedDrop for AddableConstMemberNonunpin { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN26AddableConstMemberNonunpinD1Ev(self) + unsafe { crate::detail::__rust_thunk___ZN26AddableConstMemberNonunpinD1Ev(self) } } } @@ -889,7 +889,7 @@ unsafe impl ::cxx::ExternType for ManyOperators { impl ManyOperators { #[inline(always)] pub fn unary_plus<'a>(&'a self) -> crate::ManyOperators { - self::many_operators::unary_plus(self) + unsafe { self::many_operators::unary_plus(self) } } } diff --git a/rs_bindings_from_cc/test/golden/overloads_rs_api.rs b/rs_bindings_from_cc/test/golden/overloads_rs_api.rs index 843de55f4..bbebc4863 100644 --- a/rs_bindings_from_cc/test/golden/overloads_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/overloads_rs_api.rs @@ -70,7 +70,7 @@ impl Foo { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn Bar(__this: *mut Self, __param_0: ::ffi_11::c_int) { - self::foo::Bar(__this, __param_0) + unsafe { self::foo::Bar(__this, __param_0) } } } @@ -100,7 +100,7 @@ pub mod foo { /// * `__this`: raw pointer #[inline(always)] pub unsafe fn Bar(__this: *mut crate::Foo, __param_0: ::ffi_11::c_int) { - crate::detail::__rust_thunk___ZN3Foo3BarEi(__this, __param_0) + unsafe { crate::detail::__rust_thunk___ZN3Foo3BarEi(__this, __param_0) } } } diff --git a/rs_bindings_from_cc/test/golden/polymorphic_rs_api.rs b/rs_bindings_from_cc/test/golden/polymorphic_rs_api.rs index eb47d976c..588ff05ad 100644 --- a/rs_bindings_from_cc/test/golden/polymorphic_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/polymorphic_rs_api.rs @@ -33,7 +33,7 @@ impl ::ctor::CtorNew<()> for PolymorphicBase { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN15PolymorphicBaseC1Ev( dest as *mut ::core::ffi::c_void, ); @@ -52,14 +52,16 @@ impl ::ctor::CtorNew<()> for PolymorphicBase { impl ::ctor::PinnedDrop for PolymorphicBase { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN15PolymorphicBaseD1Ev(self) + unsafe { crate::detail::__rust_thunk___ZN15PolymorphicBaseD1Ev(self) } } } unsafe impl ::operator::Delete for crate::PolymorphicBase { #[inline(always)] unsafe fn delete(p: *mut Self) { - crate::detail::__crubit_operator_delete__15PolymorphicBase___2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fgolden_3apolymorphic_5fcc(p); + unsafe { + crate::detail::__crubit_operator_delete__15PolymorphicBase___2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fgolden_3apolymorphic_5fcc(p); + } } } @@ -78,7 +80,7 @@ unsafe impl ::cxx::ExternType for PolymorphicBase2 { impl PolymorphicBase2 { #[inline(always)] pub fn Foo<'a>(self: ::core::pin::Pin<&'a mut Self>) { - self::polymorphic_base2::Foo(self) + unsafe { self::polymorphic_base2::Foo(self) } } } @@ -89,7 +91,7 @@ impl ::ctor::CtorNew<()> for PolymorphicBase2 { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN16PolymorphicBase2C1Ev( dest as *mut ::core::ffi::c_void, ); @@ -108,14 +110,16 @@ impl ::ctor::CtorNew<()> for PolymorphicBase2 { impl ::ctor::PinnedDrop for PolymorphicBase2 { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN16PolymorphicBase2D1Ev(self) + unsafe { crate::detail::__rust_thunk___ZN16PolymorphicBase2D1Ev(self) } } } unsafe impl ::operator::Delete for crate::PolymorphicBase2 { #[inline(always)] unsafe fn delete(p: *mut Self) { - crate::detail::__crubit_operator_delete__16PolymorphicBase2___2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fgolden_3apolymorphic_5fcc(p); + unsafe { + crate::detail::__crubit_operator_delete__16PolymorphicBase2___2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fgolden_3apolymorphic_5fcc(p); + } } } @@ -146,7 +150,7 @@ impl ::ctor::CtorNew<()> for PolymorphicDerived { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN18PolymorphicDerivedC1Ev( dest as *mut ::core::ffi::c_void, ); @@ -164,7 +168,7 @@ impl ::ctor::CtorNew<()> for PolymorphicDerived { impl ::ctor::PinnedDrop for PolymorphicDerived { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN18PolymorphicDerivedD1Ev(self) + unsafe { crate::detail::__rust_thunk___ZN18PolymorphicDerivedD1Ev(self) } } } @@ -179,7 +183,9 @@ impl ::ctor::PinnedDrop for PolymorphicDerived { unsafe impl ::operator::Delete for crate::PolymorphicDerived { #[inline(always)] unsafe fn delete(p: *mut Self) { - crate::detail::__crubit_operator_delete__18PolymorphicDerived___2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fgolden_3apolymorphic_5fcc(p); + unsafe { + crate::detail::__crubit_operator_delete__18PolymorphicDerived___2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2fgolden_3apolymorphic_5fcc(p); + } } } diff --git a/rs_bindings_from_cc/test/golden/private_members_rs_api.rs b/rs_bindings_from_cc/test/golden/private_members_rs_api.rs index 4d6909795..576156e04 100644 --- a/rs_bindings_from_cc/test/golden/private_members_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/private_members_rs_api.rs @@ -33,11 +33,11 @@ pub mod test_namespace_bindings { impl SomeClass { #[inline(always)] pub fn public_method<'a>(&'a mut self) { - self::some_class::public_method(self) + unsafe { self::some_class::public_method(self) } } #[inline(always)] pub fn public_static_method() { - self::some_class::public_static_method() + unsafe { self::some_class::public_static_method() } } } diff --git a/rs_bindings_from_cc/test/golden/static_methods_rs_api.rs b/rs_bindings_from_cc/test/golden/static_methods_rs_api.rs index 15e7819cb..5aa3ddc53 100644 --- a/rs_bindings_from_cc/test/golden/static_methods_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/static_methods_rs_api.rs @@ -32,7 +32,7 @@ impl SomeClass { /// Example of a factory method. #[inline(always)] pub fn static_factory_method(initial_value_of_field: ::ffi_11::c_int) -> crate::SomeClass { - self::some_class::static_factory_method(initial_value_of_field) + unsafe { self::some_class::static_factory_method(initial_value_of_field) } } /// Static method working on primitive types (and unrelated to the struct). #[inline(always)] @@ -40,7 +40,7 @@ impl SomeClass { x: ::ffi_11::c_int, y: ::ffi_11::c_int, ) -> ::ffi_11::c_int { - self::some_class::static_method_that_multiplies_its_args(x, y) + unsafe { self::some_class::static_method_that_multiplies_its_args(x, y) } } } diff --git a/rs_bindings_from_cc/test/golden/trivial_type_rs_api.rs b/rs_bindings_from_cc/test/golden/trivial_type_rs_api.rs index bf48c0671..5bf4a1c64 100644 --- a/rs_bindings_from_cc/test/golden/trivial_type_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/trivial_type_rs_api.rs @@ -31,19 +31,19 @@ pub mod ns { impl Trivial { #[inline(always)] pub fn Unqualified<'a>(&'a mut self) { - self::trivial::Unqualified(self) + unsafe { self::trivial::Unqualified(self) } } #[inline(always)] pub fn ConstQualified<'a>(&'a self) { - self::trivial::ConstQualified(self) + unsafe { self::trivial::ConstQualified(self) } } #[inline(always)] pub fn LvalueRefQualified<'a>(&'a mut self) { - self::trivial::LvalueRefQualified(self) + unsafe { self::trivial::LvalueRefQualified(self) } } #[inline(always)] pub fn ConstLvalueRefQualified<'a>(&'a self) { - self::trivial::ConstLvalueRefQualified(self) + unsafe { self::trivial::ConstLvalueRefQualified(self) } } } diff --git a/rs_bindings_from_cc/test/golden/types_rs_api.rs b/rs_bindings_from_cc/test/golden/types_rs_api.rs index 019617b7f..94b4500ca 100644 --- a/rs_bindings_from_cc/test/golden/types_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/types_rs_api.rs @@ -171,7 +171,7 @@ pub unsafe fn FunctionWithVoidPointers( __param_0: *mut ::ffi_11::c_void, __param_1: *const ::ffi_11::c_void, ) -> *mut ::ffi_11::c_void { - crate::detail::__rust_thunk___Z24FunctionWithVoidPointersPvPKv(__param_0, __param_1) + unsafe { crate::detail::__rust_thunk___Z24FunctionWithVoidPointersPvPKv(__param_0, __param_1) } } mod detail { diff --git a/rs_bindings_from_cc/test/golden/unions_rs_api.rs b/rs_bindings_from_cc/test/golden/unions_rs_api.rs index fbf35f02a..2666bbdbf 100644 --- a/rs_bindings_from_cc/test/golden/unions_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/unions_rs_api.rs @@ -76,7 +76,7 @@ impl ::ctor::CtorNew<()> for Nontrivial { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN10NontrivialC1Ev(dest as *mut ::core::ffi::c_void); }) } @@ -151,7 +151,9 @@ unsafe impl ::cxx::ExternType for TriviallyCopyableButNontriviallyDestructible { impl ::ctor::PinnedDrop for TriviallyCopyableButNontriviallyDestructible { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN44TriviallyCopyableButNontriviallyDestructibleD1Ev(self) + unsafe { + crate::detail::__rust_thunk___ZN44TriviallyCopyableButNontriviallyDestructibleD1Ev(self) + } } } diff --git a/rs_bindings_from_cc/test/golden/unsafe_attrs_rs_api.rs b/rs_bindings_from_cc/test/golden/unsafe_attrs_rs_api.rs index c0d9c981f..4f495a9b4 100644 --- a/rs_bindings_from_cc/test/golden/unsafe_attrs_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/unsafe_attrs_rs_api.rs @@ -34,7 +34,7 @@ pub fn TotallySafe() { /// * `__param_0`: raw pointer #[inline(always)] pub unsafe fn TotallyUnsafe(__param_0: *mut ::ffi_11::c_void) { - crate::detail::__rust_thunk___Z13TotallyUnsafePv(__param_0) + unsafe { crate::detail::__rust_thunk___Z13TotallyUnsafePv(__param_0) } } /// # Safety @@ -42,7 +42,7 @@ pub unsafe fn TotallyUnsafe(__param_0: *mut ::ffi_11::c_void) { /// The C++ function is explicitly annotated as unsafe. Ensure that its safety requirements are upheld. #[inline(always)] pub unsafe fn SafeSignatureButAnnotatedUnsafe() { - crate::detail::__rust_thunk___Z31SafeSignatureButAnnotatedUnsafev() + unsafe { crate::detail::__rust_thunk___Z31SafeSignatureButAnnotatedUnsafev() } } #[inline(always)] @@ -58,7 +58,7 @@ pub fn SafeSignatureButAnnotatedSafe() { /// * `__param_0`: raw pointer #[inline(always)] pub unsafe fn UnsafeSignatureButAnnotatedUnsafe(__param_0: *mut ::ffi_11::c_void) { - crate::detail::__rust_thunk___Z33UnsafeSignatureButAnnotatedUnsafePv(__param_0) + unsafe { crate::detail::__rust_thunk___Z33UnsafeSignatureButAnnotatedUnsafePv(__param_0) } } #[inline(always)] diff --git a/rs_bindings_from_cc/test/golden/unsafe_types_transitive_rs_api.rs b/rs_bindings_from_cc/test/golden/unsafe_types_transitive_rs_api.rs index c320b2bf8..68fabecae 100644 --- a/rs_bindings_from_cc/test/golden/unsafe_types_transitive_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/unsafe_types_transitive_rs_api.rs @@ -139,7 +139,7 @@ impl Default for Union { /// * `p`: raw pointer #[inline(always)] pub unsafe fn DerefPointer(p: *mut ::ffi_11::c_int) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___Z12DerefPointerPi(p) + unsafe { crate::detail::__rust_thunk___Z12DerefPointerPi(p) } } /// # Safety @@ -148,7 +148,7 @@ pub unsafe fn DerefPointer(p: *mut ::ffi_11::c_int) -> ::ffi_11::c_int { /// * `p`: unsafe struct or union #[inline(always)] pub unsafe fn DerefPublicPointer(mut p: crate::PublicPointer) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___Z18DerefPublicPointer13PublicPointer(&mut p) + unsafe { crate::detail::__rust_thunk___Z18DerefPublicPointer13PublicPointer(&mut p) } } /// # Safety @@ -159,7 +159,11 @@ pub unsafe fn DerefPublicPointer(mut p: crate::PublicPointer) -> ::ffi_11::c_int pub unsafe fn DerefTransitivePublicPointer( mut p: crate::TransitivePublicPointer, ) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___Z28DerefTransitivePublicPointer23TransitivePublicPointer(&mut p) + unsafe { + crate::detail::__rust_thunk___Z28DerefTransitivePublicPointer23TransitivePublicPointer( + &mut p, + ) + } } /// # Safety @@ -168,7 +172,7 @@ pub unsafe fn DerefTransitivePublicPointer( /// * `u`: unsafe struct or union #[inline(always)] pub unsafe fn ReadUnion(mut u: crate::Union) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___Z9ReadUnion5Union(&mut u) + unsafe { crate::detail::__rust_thunk___Z9ReadUnion5Union(&mut u) } } mod detail { diff --git a/rs_bindings_from_cc/test/golden/user_of_base_class_rs_api.rs b/rs_bindings_from_cc/test/golden/user_of_base_class_rs_api.rs index 9da7c740d..2c5183a51 100644 --- a/rs_bindings_from_cc/test/golden/user_of_base_class_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/user_of_base_class_rs_api.rs @@ -39,7 +39,7 @@ impl ::ctor::CtorNew<()> for Derived2 { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN8Derived2C1Ev(dest as *mut ::core::ffi::c_void); }) } @@ -80,7 +80,7 @@ impl ::ctor::CtorNew<()> for VirtualDerived2 { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN15VirtualDerived2C1Ev( dest as *mut ::core::ffi::c_void, ); diff --git a/rs_bindings_from_cc/test/namespace/inline/inline_rs_api.rs b/rs_bindings_from_cc/test/namespace/inline/inline_rs_api.rs index 7729e783c..e75b0177c 100644 --- a/rs_bindings_from_cc/test/namespace/inline/inline_rs_api.rs +++ b/rs_bindings_from_cc/test/namespace/inline/inline_rs_api.rs @@ -57,7 +57,9 @@ pub mod foo { /// Generated from: rs_bindings_from_cc/test/namespace/inline/inline.h;l=15 #[inline(always)] pub unsafe fn GetStructValue1(s: *const crate::foo::inline1::MyStruct) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___ZN3foo7inline115GetStructValue1EPKNS0_8MyStructE(s) + unsafe { + crate::detail::__rust_thunk___ZN3foo7inline115GetStructValue1EPKNS0_8MyStructE(s) + } } /// # Safety @@ -68,7 +70,9 @@ pub mod foo { /// Generated from: rs_bindings_from_cc/test/namespace/inline/inline.h;l=17 #[inline(always)] pub unsafe fn GetStructValue2(s: *const crate::foo::inline1::MyStruct) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___ZN3foo7inline115GetStructValue2EPKNS0_8MyStructE(s) + unsafe { + crate::detail::__rust_thunk___ZN3foo7inline115GetStructValue2EPKNS0_8MyStructE(s) + } } /// # Safety @@ -79,7 +83,9 @@ pub mod foo { /// Generated from: rs_bindings_from_cc/test/namespace/inline/inline.h;l=26 #[inline(always)] pub unsafe fn GetStructValue3(s: *const crate::foo::inline1::MyStruct) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___ZN3foo7inline115GetStructValue3EPKNS0_8MyStructE(s) + unsafe { + crate::detail::__rust_thunk___ZN3foo7inline115GetStructValue3EPKNS0_8MyStructE(s) + } } /// # Safety @@ -90,7 +96,9 @@ pub mod foo { /// Generated from: rs_bindings_from_cc/test/namespace/inline/inline.h;l=27 #[inline(always)] pub unsafe fn GetStructValue4(s: *const crate::foo::inline1::MyStruct) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___ZN3foo7inline115GetStructValue4EPKNS0_8MyStructE(s) + unsafe { + crate::detail::__rust_thunk___ZN3foo7inline115GetStructValue4EPKNS0_8MyStructE(s) + } } } #[allow(unused_imports)] diff --git a/rs_bindings_from_cc/test/namespace/nested_items/nested_items_rs_api.rs b/rs_bindings_from_cc/test/namespace/nested_items/nested_items_rs_api.rs index b82a6d555..bd1009655 100644 --- a/rs_bindings_from_cc/test/namespace/nested_items/nested_items_rs_api.rs +++ b/rs_bindings_from_cc/test/namespace/nested_items/nested_items_rs_api.rs @@ -46,7 +46,7 @@ impl Same { /// Generated from: rs_bindings_from_cc/test/namespace/nested_items/nested_items.h;l=25 #[inline(always)] pub unsafe fn Method(__this: *mut Self) -> ::ffi_11::c_int { - self::same_items::Method(__this) + unsafe { self::same_items::Method(__this) } } } @@ -71,7 +71,7 @@ pub mod same_items { /// Generated from: rs_bindings_from_cc/test/namespace/nested_items/nested_items.h;l=25 #[inline(always)] pub unsafe fn Method(__this: *mut crate::Same) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___ZN4Same6MethodEv(__this) + unsafe { crate::detail::__rust_thunk___ZN4Same6MethodEv(__this) } } /// Generated from: rs_bindings_from_cc/test/namespace/nested_items/nested_items.h;l=16 #[derive(Clone, Copy, ::ctor::MoveAndAssignViaCopy)] @@ -95,7 +95,7 @@ pub mod same_items { /// Generated from: rs_bindings_from_cc/test/namespace/nested_items/nested_items.h;l=17 #[inline(always)] pub unsafe fn NestedItemFunction(__this: *mut Self) -> ::ffi_11::c_int { - self::nested_item::NestedItemFunction(__this) + unsafe { self::nested_item::NestedItemFunction(__this) } } } @@ -122,7 +122,9 @@ pub mod same_items { pub unsafe fn NestedItemFunction( __this: *mut crate::same_items::NestedItem, ) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___ZN4Same10NestedItem18NestedItemFunctionEv(__this) + unsafe { + crate::detail::__rust_thunk___ZN4Same10NestedItem18NestedItemFunctionEv(__this) + } } } @@ -192,7 +194,7 @@ pub mod foo { /// Generated from: rs_bindings_from_cc/test/namespace/nested_items/nested_items.h;l=32 #[inline(always)] pub fn BFunction() -> ::ffi_11::c_int { - self::foo_items::BFunction() + unsafe { self::foo_items::BFunction() } } } diff --git a/rs_bindings_from_cc/test/struct/constructors/constructors_rs_api.rs b/rs_bindings_from_cc/test/struct/constructors/constructors_rs_api.rs index a0c2efd31..70ff3a475 100644 --- a/rs_bindings_from_cc/test/struct/constructors/constructors_rs_api.rs +++ b/rs_bindings_from_cc/test/struct/constructors/constructors_rs_api.rs @@ -558,7 +558,7 @@ impl<'__param_0> ::ctor::CtorNew<&'__param_0 Self> for NonTrivialStructWithConst fn ctor_new(args: &'__param_0 Self) -> Self::CtorType { let mut __param_0 = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN32NonTrivialStructWithConstructorsC1ERKS_( dest as *mut ::core::ffi::c_void, __param_0, @@ -597,7 +597,7 @@ impl ::ctor::CtorNew<()> for NonTrivialStructWithConstructors { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN32NonTrivialStructWithConstructorsC1Ev( dest as *mut ::core::ffi::c_void, ); @@ -614,7 +614,7 @@ impl ::ctor::CtorNew<::ffi_11::c_int> for NonTrivialStructWithConstructors { fn ctor_new(args: ::ffi_11::c_int) -> Self::CtorType { let mut __param_0 = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN32NonTrivialStructWithConstructorsC1Ei( dest as *mut ::core::ffi::c_void, __param_0, @@ -639,7 +639,7 @@ impl ::ctor::CtorNew<(::ffi_11::c_int,)> for NonTrivialStructWithConstructors { impl ::ctor::PinnedDrop for NonTrivialStructWithConstructors { #[inline(always)] unsafe fn pinned_drop<'__this>(self: ::core::pin::Pin<&'__this mut Self>) { - crate::detail::__rust_thunk___ZN32NonTrivialStructWithConstructorsD1Ev(self) + unsafe { crate::detail::__rust_thunk___ZN32NonTrivialStructWithConstructorsD1Ev(self) } } } diff --git a/rs_bindings_from_cc/test/struct/default_member_functions/default_member_functions_rs_api.rs b/rs_bindings_from_cc/test/struct/default_member_functions/default_member_functions_rs_api.rs index 0362f5dbe..da350545b 100644 --- a/rs_bindings_from_cc/test/struct/default_member_functions/default_member_functions_rs_api.rs +++ b/rs_bindings_from_cc/test/struct/default_member_functions/default_member_functions_rs_api.rs @@ -36,7 +36,7 @@ impl ::ctor::CtorNew<()> for Uncopyable { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN10UncopyableC1Ev(dest as *mut ::core::ffi::c_void); }) } @@ -64,7 +64,7 @@ unsafe impl ::cxx::ExternType for UncopyableDespiteDecl { impl ::ctor::PinnedDrop for UncopyableDespiteDecl { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN21UncopyableDespiteDeclD1Ev(self) + unsafe { crate::detail::__rust_thunk___ZN21UncopyableDespiteDeclD1Ev(self) } } } @@ -80,7 +80,7 @@ impl ::ctor::CtorNew<()> for UncopyableDespiteDecl { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN21UncopyableDespiteDeclC1Ev( dest as *mut ::core::ffi::c_void, ); diff --git a/rs_bindings_from_cc/test/struct/destructors/destructors_rs_api.rs b/rs_bindings_from_cc/test/struct/destructors/destructors_rs_api.rs index c56368c68..0005cd283 100644 --- a/rs_bindings_from_cc/test/struct/destructors/destructors_rs_api.rs +++ b/rs_bindings_from_cc/test/struct/destructors/destructors_rs_api.rs @@ -33,17 +33,17 @@ impl DestructionOrderRecorder { /// Generated from: rs_bindings_from_cc/test/struct/destructors/destructors.h;l=34 #[inline(always)] pub fn RecordDestruction(int_field: ::ffi_11::c_int) { - self::destruction_order_recorder::RecordDestruction(int_field) + unsafe { self::destruction_order_recorder::RecordDestruction(int_field) } } /// Generated from: rs_bindings_from_cc/test/struct/destructors/destructors.h;l=35 #[inline(always)] pub fn GetDestructionRecord() -> ::ffi_11::c_int { - self::destruction_order_recorder::GetDestructionRecord() + unsafe { self::destruction_order_recorder::GetDestructionRecord() } } /// Generated from: rs_bindings_from_cc/test/struct/destructors/destructors.h;l=36 #[inline(always)] pub fn ClearDestructionRecord() { - self::destruction_order_recorder::ClearDestructionRecord() + unsafe { self::destruction_order_recorder::ClearDestructionRecord() } } } @@ -168,7 +168,7 @@ impl FieldDestructionOrderTester { field2: ::ffi_11::c_int, field3: ::ffi_11::c_int, ) { - self::field_destruction_order_tester::DestructFromCpp(field1, field2, field3) + unsafe { self::field_destruction_order_tester::DestructFromCpp(field1, field2, field3) } } } diff --git a/rs_bindings_from_cc/test/struct/inheritance/inherited_methods_rs_api.rs b/rs_bindings_from_cc/test/struct/inheritance/inherited_methods_rs_api.rs index a6e4aa09a..59f3d149f 100644 --- a/rs_bindings_from_cc/test/struct/inheritance/inherited_methods_rs_api.rs +++ b/rs_bindings_from_cc/test/struct/inheritance/inherited_methods_rs_api.rs @@ -37,7 +37,7 @@ impl ::ctor::CtorNew<()> for Nonmovable { fn ctor_new(args: ()) -> Self::CtorType { let () = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN10NonmovableC1Ev(dest as *mut ::core::ffi::c_void); }) } @@ -62,7 +62,7 @@ impl Base { /// Generated from: rs_bindings_from_cc/test/struct/inheritance/inherited_methods.h;l=17 #[inline(always)] pub fn has_bindings<'__this>(&'__this self) -> bool { - self::base::has_bindings(self) + unsafe { self::base::has_bindings(self) } } /// Generated from: rs_bindings_from_cc/test/struct/inheritance/inherited_methods.h;l=19 #[inline(always)] @@ -70,7 +70,7 @@ impl Base { where for<'error> &'error (): BindingFailedFor_ZNK4Base11no_bindingsE10Nonmovable, { - self::base::no_bindings(self, __param_0) + unsafe { self::base::no_bindings(self, __param_0) } } } @@ -129,7 +129,7 @@ impl Derived { /// Generated from: rs_bindings_from_cc/test/struct/inheritance/inherited_methods.h;l=17 #[inline(always)] pub fn has_bindings<'__this>(&'__this self) -> bool { - self::derived::has_bindings(oops::Upcast::<_>::upcast(self)) + unsafe { self::derived::has_bindings(oops::Upcast::<_>::upcast(self)) } } /// Generated from: rs_bindings_from_cc/test/struct/inheritance/inherited_methods.h;l=19 #[inline(always)] @@ -137,7 +137,7 @@ impl Derived { where for<'error> &'error (): BindingFailedFor_7Derived__ZNK4Base11no_bindingsE10Nonmovable, { - self::derived::no_bindings(oops::Upcast::<_>::upcast(self), __param_0) + unsafe { self::derived::no_bindings(oops::Upcast::<_>::upcast(self), __param_0) } } } @@ -160,7 +160,7 @@ pub trait BindingFailedFor_7Derived__ZNK4Base11no_bindingsE10Nonmovable {} unsafe impl oops::Inherits for crate::Derived { unsafe fn upcast_ptr(derived: *const Self) -> *const crate::Base { - (derived as *const _ as *const u8).offset(0) as *const crate::Base + unsafe { (derived as *const _ as *const u8).offset(0) as *const crate::Base } } } diff --git a/rs_bindings_from_cc/test/struct/methods/methods_rs_api.rs b/rs_bindings_from_cc/test/struct/methods/methods_rs_api.rs index 5a5582735..91abdfaec 100644 --- a/rs_bindings_from_cc/test/struct/methods/methods_rs_api.rs +++ b/rs_bindings_from_cc/test/struct/methods/methods_rs_api.rs @@ -31,7 +31,7 @@ impl SomeClass { /// Generated from: rs_bindings_from_cc/test/struct/methods/methods.h;l=10 #[inline(always)] pub fn static_factory_method(int_var_initial_value: ::ffi_11::c_int) -> crate::SomeClass { - self::some_class::static_factory_method(int_var_initial_value) + unsafe { self::some_class::static_factory_method(int_var_initial_value) } } /// Generated from: rs_bindings_from_cc/test/struct/methods/methods.h;l=11 #[inline(always)] @@ -39,7 +39,7 @@ impl SomeClass { x: ::ffi_11::c_int, y: ::ffi_11::c_int, ) -> ::ffi_11::c_int { - self::some_class::static_method_that_multiplies_its_args(x, y) + unsafe { self::some_class::static_method_that_multiplies_its_args(x, y) } } /// Using an `inline` method forces generation of a C++ thunk in /// methods_rs_api_impl.cc (helping add test coverage for such thunks). @@ -47,7 +47,7 @@ impl SomeClass { /// Generated from: rs_bindings_from_cc/test/struct/methods/methods.h;l=16 #[inline(always)] pub fn static_inline_method(arg: ::ffi_11::c_int) -> ::ffi_11::c_int { - self::some_class::static_inline_method(arg) + unsafe { self::some_class::static_inline_method(arg) } } } @@ -115,22 +115,22 @@ impl InstanceMethods { /// Generated from: rs_bindings_from_cc/test/struct/methods/methods.h;l=26 #[inline(always)] pub fn get_int_field(&self) -> ::ffi_11::c_int { - self::instance_methods::get_int_field(self) + unsafe { self::instance_methods::get_int_field(self) } } /// Generated from: rs_bindings_from_cc/test/struct/methods/methods.h;l=27 #[inline(always)] pub fn set_int_field(&mut self, new_value: ::ffi_11::c_int) { - self::instance_methods::set_int_field(self, new_value) + unsafe { self::instance_methods::set_int_field(self, new_value) } } /// Generated from: rs_bindings_from_cc/test/struct/methods/methods.h;l=29 #[inline(always)] pub fn inline_get_int_field(&self) -> ::ffi_11::c_int { - self::instance_methods::inline_get_int_field(self) + unsafe { self::instance_methods::inline_get_int_field(self) } } /// Generated from: rs_bindings_from_cc/test/struct/methods/methods.h;l=30 #[inline(always)] pub fn inline_set_int_field(&mut self, new_value: ::ffi_11::c_int) { - self::instance_methods::inline_set_int_field(self, new_value) + unsafe { self::instance_methods::inline_set_int_field(self, new_value) } } /// # Safety /// @@ -143,22 +143,22 @@ impl InstanceMethods { &mut self, input_ref: *mut ::ffi_11::c_int, ) -> *mut ::ffi_11::c_int { - self::instance_methods::takes_and_returns_ref(self, input_ref) + unsafe { self::instance_methods::takes_and_returns_ref(self, input_ref) } } /// Generated from: rs_bindings_from_cc/test/struct/methods/methods.h;l=32 #[inline(always)] pub fn ref_qualified(&mut self) { - self::instance_methods::ref_qualified(self) + unsafe { self::instance_methods::ref_qualified(self) } } /// Generated from: rs_bindings_from_cc/test/struct/methods/methods.h;l=33 #[inline(always)] pub fn const_ref_qualified(&self) { - self::instance_methods::const_ref_qualified(self) + unsafe { self::instance_methods::const_ref_qualified(self) } } /// Generated from: rs_bindings_from_cc/test/struct/methods/methods.h;l=34 #[inline(always)] pub fn rvalue_qualified(&mut self) { - self::instance_methods::rvalue_qualified(self) + unsafe { self::instance_methods::rvalue_qualified(self) } } } @@ -214,9 +214,11 @@ pub mod instance_methods { __this: &mut crate::InstanceMethods, input_ref: *mut ::ffi_11::c_int, ) -> *mut ::ffi_11::c_int { - crate::detail::__rust_thunk___ZN15InstanceMethods21takes_and_returns_refERi( - __this, input_ref, - ) + unsafe { + crate::detail::__rust_thunk___ZN15InstanceMethods21takes_and_returns_refERi( + __this, input_ref, + ) + } } /// Generated from: rs_bindings_from_cc/test/struct/methods/methods.h;l=32 #[inline(always)] diff --git a/rs_bindings_from_cc/test/struct/methods_qualifiers/methods_qualifiers_rs_api.rs b/rs_bindings_from_cc/test/struct/methods_qualifiers/methods_qualifiers_rs_api.rs index 3ae20b5fa..a4496a08b 100644 --- a/rs_bindings_from_cc/test/struct/methods_qualifiers/methods_qualifiers_rs_api.rs +++ b/rs_bindings_from_cc/test/struct/methods_qualifiers/methods_qualifiers_rs_api.rs @@ -35,41 +35,45 @@ impl UnpinStructWithRefQualifiedMethods { /// Generated from: rs_bindings_from_cc/test/struct/methods_qualifiers/methods_qualifiers.h;l=12 #[inline(always)] pub fn increment_i<'a>(&'a mut self) { - self::unpin_struct_with_ref_qualified_methods::increment_i(self) + unsafe { self::unpin_struct_with_ref_qualified_methods::increment_i(self) } } /// Generated from: rs_bindings_from_cc/test/struct/methods_qualifiers/methods_qualifiers.h;l=13 #[inline(always)] pub fn unqualified_get_i<'a>(&'a mut self) -> ::ffi_11::c_int { - self::unpin_struct_with_ref_qualified_methods::unqualified_get_i(self) + unsafe { self::unpin_struct_with_ref_qualified_methods::unqualified_get_i(self) } } /// Generated from: rs_bindings_from_cc/test/struct/methods_qualifiers/methods_qualifiers.h;l=14 #[inline(always)] pub fn const_qualified_get_i<'a>(&'a self) -> ::ffi_11::c_int { - self::unpin_struct_with_ref_qualified_methods::const_qualified_get_i(self) + unsafe { self::unpin_struct_with_ref_qualified_methods::const_qualified_get_i(self) } } /// Generated from: rs_bindings_from_cc/test/struct/methods_qualifiers/methods_qualifiers.h;l=15 #[inline(always)] pub fn lvalue_ref_qualified_get_i<'a>(&'a mut self) -> ::ffi_11::c_int { - self::unpin_struct_with_ref_qualified_methods::lvalue_ref_qualified_get_i(self) + unsafe { self::unpin_struct_with_ref_qualified_methods::lvalue_ref_qualified_get_i(self) } } /// Generated from: rs_bindings_from_cc/test/struct/methods_qualifiers/methods_qualifiers.h;l=16 #[inline(always)] pub fn const_lvalue_ref_qualified_get_i<'a>(&'a self) -> ::ffi_11::c_int { - self::unpin_struct_with_ref_qualified_methods::const_lvalue_ref_qualified_get_i(self) + unsafe { + self::unpin_struct_with_ref_qualified_methods::const_lvalue_ref_qualified_get_i(self) + } } /// Generated from: rs_bindings_from_cc/test/struct/methods_qualifiers/methods_qualifiers.h;l=17 #[inline(always)] pub fn rvalue_ref_qualified_get_i<'a>( self: ::ctor::RvalueReference<'a, Self>, ) -> ::ffi_11::c_int { - self::unpin_struct_with_ref_qualified_methods::rvalue_ref_qualified_get_i(self) + unsafe { self::unpin_struct_with_ref_qualified_methods::rvalue_ref_qualified_get_i(self) } } /// Generated from: rs_bindings_from_cc/test/struct/methods_qualifiers/methods_qualifiers.h;l=18 #[inline(always)] pub fn const_rvalue_ref_qualified_get_i<'a>( self: ::ctor::ConstRvalueReference<'a, Self>, ) -> ::ffi_11::c_int { - self::unpin_struct_with_ref_qualified_methods::const_rvalue_ref_qualified_get_i(self) + unsafe { + self::unpin_struct_with_ref_qualified_methods::const_rvalue_ref_qualified_get_i(self) + } } } diff --git a/rs_bindings_from_cc/test/templates/type_alias/type_alias_rs_api.rs b/rs_bindings_from_cc/test/templates/type_alias/type_alias_rs_api.rs index c7fb6703d..e869dfe62 100644 --- a/rs_bindings_from_cc/test/templates/type_alias/type_alias_rs_api.rs +++ b/rs_bindings_from_cc/test/templates/type_alias/type_alias_rs_api.rs @@ -44,12 +44,12 @@ impl __CcTemplateInst10MyTemplateIiE { /// Generated from: rs_bindings_from_cc/test/templates/type_alias/type_alias.h;l=13 #[inline(always)] pub fn Create(value: ::ffi_11::c_int) -> crate::__CcTemplateInst10MyTemplateIiE { - self::cc_template_inst10_my_template_ii_e::Create(value) + unsafe { self::cc_template_inst10_my_template_ii_e::Create(value) } } /// Generated from: rs_bindings_from_cc/test/templates/type_alias/type_alias.h;l=19 #[inline(always)] pub fn value<'__this>(&'__this self) -> ::cref::CRef<'__this, ::ffi_11::c_int> { - self::cc_template_inst10_my_template_ii_e::value(self) + unsafe { self::cc_template_inst10_my_template_ii_e::value(self) } } } diff --git a/rs_bindings_from_cc/test/types_only/types_only_rs_api.rs b/rs_bindings_from_cc/test/types_only/types_only_rs_api.rs index 0605a4e09..3ccec0907 100644 --- a/rs_bindings_from_cc/test/types_only/types_only_rs_api.rs +++ b/rs_bindings_from_cc/test/types_only/types_only_rs_api.rs @@ -71,7 +71,7 @@ impl ::ctor::CtorNew<::ffi_11::c_int> for Cloneable { fn ctor_new(args: ::ffi_11::c_int) -> Self::CtorType { let mut field = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN9CloneableC1Ei( dest as *mut ::core::ffi::c_void, field, @@ -98,7 +98,7 @@ impl<'__unelided> ::ctor::CtorNew<&'__unelided Self> for Cloneable { fn ctor_new(args: &'__unelided Self) -> Self::CtorType { let mut __param_0 = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN9CloneableC1ERKS_( dest as *mut ::core::ffi::c_void, __param_0, @@ -125,7 +125,7 @@ impl<'__unelided> ::ctor::CtorNew<::ctor::RvalueReference<'__unelided, Self>> fo fn ctor_new(args: ::ctor::RvalueReference<'__unelided, Self>) -> Self::CtorType { let mut __param_0 = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN9CloneableC1EOS_( dest as *mut ::core::ffi::c_void, __param_0, @@ -168,7 +168,7 @@ impl ::ctor::Assign<::ctor::RvalueReference<'_, Self>> for Cloneable { impl ::ctor::PinnedDrop for Cloneable { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN9CloneableD1Ev(self) + unsafe { crate::detail::__rust_thunk___ZN9CloneableD1Ev(self) } } } @@ -197,7 +197,7 @@ impl ::ctor::CtorNew<::ffi_11::c_int> for Movable { fn ctor_new(args: ::ffi_11::c_int) -> Self::CtorType { let mut field = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN7MovableC1Ei( dest as *mut ::core::ffi::c_void, field, @@ -224,7 +224,7 @@ impl<'__unelided> ::ctor::CtorNew<::ctor::RvalueReference<'__unelided, Self>> fo fn ctor_new(args: ::ctor::RvalueReference<'__unelided, Self>) -> Self::CtorType { let mut other = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN7MovableC1EOS_( dest as *mut ::core::ffi::c_void, other, @@ -257,7 +257,7 @@ impl ::ctor::Assign<::ctor::RvalueReference<'_, Self>> for Movable { impl ::ctor::PinnedDrop for Movable { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN7MovableD1Ev(self) + unsafe { crate::detail::__rust_thunk___ZN7MovableD1Ev(self) } } } diff --git a/rs_bindings_from_cc/test/wrapper/fallback_types/wrapper_library_rs_api.rs b/rs_bindings_from_cc/test/wrapper/fallback_types/wrapper_library_rs_api.rs index 0609616f3..f5579581f 100644 --- a/rs_bindings_from_cc/test/wrapper/fallback_types/wrapper_library_rs_api.rs +++ b/rs_bindings_from_cc/test/wrapper/fallback_types/wrapper_library_rs_api.rs @@ -32,7 +32,7 @@ pub(crate) unsafe fn SetValue( x: *mut ::forward_declare::Incomplete<::forward_declare::symbol!("UnsupportedType"), ()>, value: ::ffi_11::c_int, ) { - crate::detail::__rust_thunk___Z8SetValueR15UnsupportedTypei(x, value) + unsafe { crate::detail::__rust_thunk___Z8SetValueR15UnsupportedTypei(x, value) } } /// # Safety @@ -45,7 +45,7 @@ pub(crate) unsafe fn SetValue( pub(crate) unsafe fn GetValue( x: *const ::forward_declare::Incomplete<::forward_declare::symbol!("UnsupportedType"), ()>, ) -> ::ffi_11::c_int { - crate::detail::__rust_thunk___Z8GetValueRK15UnsupportedType(x) + unsafe { crate::detail::__rust_thunk___Z8GetValueRK15UnsupportedType(x) } } #[path = "rs_bindings_from_cc/test/wrapper/fallback_types/wrapper_library_extra.rs"] diff --git a/rs_bindings_from_cc/test/wrapper/impl_ctor/impl_ctor_rs_api.rs b/rs_bindings_from_cc/test/wrapper/impl_ctor/impl_ctor_rs_api.rs index 0849d8f86..1f5eec4ff 100644 --- a/rs_bindings_from_cc/test/wrapper/impl_ctor/impl_ctor_rs_api.rs +++ b/rs_bindings_from_cc/test/wrapper/impl_ctor/impl_ctor_rs_api.rs @@ -38,7 +38,7 @@ impl ::ctor::CtorNew<::ffi_11::c_int> for Nontrivial { fn ctor_new(args: ::ffi_11::c_int) -> Self::CtorType { let mut x = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN10NontrivialC1Ei( dest as *mut ::core::ffi::c_void, x, @@ -65,7 +65,7 @@ impl<'__unelided> ::ctor::CtorNew<::ctor::RvalueReference<'__unelided, Self>> fo fn ctor_new(args: ::ctor::RvalueReference<'__unelided, Self>) -> Self::CtorType { let mut __param_0 = args; unsafe { - ::ctor::FnCtor::new(move |dest: *mut Self| { + ::ctor::FnCtor::new(move |dest: *mut Self| unsafe { crate::detail::__rust_thunk___ZN10NontrivialC1EOS_( dest as *mut ::core::ffi::c_void, __param_0, @@ -98,7 +98,7 @@ impl ::ctor::Assign<::ctor::RvalueReference<'_, Self>> for Nontrivial { impl ::ctor::PinnedDrop for Nontrivial { #[inline(always)] unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) { - crate::detail::__rust_thunk___ZN10NontrivialD1Ev(self) + unsafe { crate::detail::__rust_thunk___ZN10NontrivialD1Ev(self) } } } @@ -106,7 +106,7 @@ impl ::ctor::PinnedDrop for Nontrivial { #[inline(always)] pub fn Create() -> ::ctor::Ctor![crate::Nontrivial] { unsafe { - ::ctor::FnCtor::new(move |dest: *mut crate::Nontrivial| { + ::ctor::FnCtor::new(move |dest: *mut crate::Nontrivial| unsafe { crate::detail::__rust_thunk___Z6Createv(dest as *mut ::core::ffi::c_void); }) } diff --git a/rs_bindings_from_cc/test/wrapper/pub_crate_types/pub_crate_types_rs_api.rs b/rs_bindings_from_cc/test/wrapper/pub_crate_types/pub_crate_types_rs_api.rs index 52eae252b..6fe147526 100644 --- a/rs_bindings_from_cc/test/wrapper/pub_crate_types/pub_crate_types_rs_api.rs +++ b/rs_bindings_from_cc/test/wrapper/pub_crate_types/pub_crate_types_rs_api.rs @@ -64,7 +64,7 @@ pub(crate) fn GetTemplateInt() -> crate::__CcTemplateInst8TemplateIiE { } } -extern "C" { +unsafe extern "C" { pub(crate) static mut TemplateConstant: crate::__CcTemplateInst8TemplateIiE; } @@ -89,7 +89,7 @@ forward_declare::forward_declare!(pub ForwardDeclared = forward_declare::symbol! /// Generated from: rs_bindings_from_cc/test/wrapper/pub_crate_types/pub_crate_types.h;l=42 #[inline(always)] pub unsafe fn OtherPubCrateTypes(__param_0: *mut ::other_pub_crate_types::ForwardDeclared2) { - crate::detail::__rust_thunk___Z18OtherPubCrateTypesP16ForwardDeclared2(__param_0) + unsafe { crate::detail::__rust_thunk___Z18OtherPubCrateTypesP16ForwardDeclared2(__param_0) } } /// Templates, otoh, are pub(crate), but work because templates are already diff --git a/support/cc_std_impl/string.rs b/support/cc_std_impl/string.rs index 84b3f30b9..95d7dd469 100644 --- a/support/cc_std_impl/string.rs +++ b/support/cc_std_impl/string.rs @@ -304,8 +304,10 @@ pub unsafe extern "C" fn cpp_string_to_rust_string(input: *mut c_void, output: * // SAFETY: `input` is a valid `std::string` so it can be safely moved. let owned_cpp_string = unsafe { conversion_function_helpers::StringMoveOwnedPtr(input) }; if let Some(ptr) = NonNull::new(owned_cpp_string) { - let output = &mut *(output as *mut MaybeUninit); - output.as_mut_ptr().write(string_wrapper { owned_cpp_string: ptr }); + unsafe { + let output = &mut *(output as *mut MaybeUninit); + output.as_mut_ptr().write(string_wrapper { owned_cpp_string: ptr }); + } } else { panic!("Failed to create owned string"); } diff --git a/support/cc_std_impl/string_view.rs b/support/cc_std_impl/string_view.rs index 14737a8f0..96c7ce1c3 100644 --- a/support/cc_std_impl/string_view.rs +++ b/support/cc_std_impl/string_view.rs @@ -265,7 +265,7 @@ impl raw_string_view { /// Similarly, the use of `&self` is not actually a protection against the bytes being /// concurrently modified. pub unsafe fn as_static_live(&'static self) -> string_view<'static> { - self.as_live() + unsafe { self.as_live() } } } diff --git a/support/cc_std_impl/vector.rs b/support/cc_std_impl/vector.rs index 443f765f3..6be02fe16 100644 --- a/support/cc_std_impl/vector.rs +++ b/support/cc_std_impl/vector.rs @@ -23,7 +23,7 @@ use core::slice::SliceIndex; use crate::crubit_cc_std_internal::std_allocator as cpp_std_allocator; -extern "C" { +unsafe extern "C" { // https://github.com/llvm/llvm-project/blob/9d0616ce52fc2a75c8e4808adec41d5189f4240c/compiler-rt/lib/sanitizer_common/sanitizer_interface_internal.h#L70 #[cfg(sanitize = "address")] fn __sanitizer_annotate_contiguous_container( @@ -658,7 +658,7 @@ unsafe fn create_vec_from_raw_parts( if begin.is_null() { Vec::new_in(cpp_std_allocator::StdAllocator {}) } else { - Vec::from_raw_parts_in(begin, len, capacity, cpp_std_allocator::StdAllocator {}) + unsafe { Vec::from_raw_parts_in(begin, len, capacity, cpp_std_allocator::StdAllocator {}) } } }