mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 01:04:41 +01:00
rust: pin-init: internal: init: simplify Zeroable safety check
The `Zeroable` type check uses a small dance with a raw pointer to aid type inference. It turns out that this is not necessary and type inference is powerful enough to resolve any ambiguity. Thus remove it. Suggested-by: Gary Guo <gary@garyguo.net> Tested-by: Andreas Hindborg <a.hindborg@kernel.org> Reviewed-by: Gary Guo <gary@garyguo.net> Signed-off-by: Benno Lossin <lossin@kernel.org>
This commit is contained in:
parent
ceca298c53
commit
1f1cd6964b
1 changed files with 1 additions and 6 deletions
|
|
@ -414,17 +414,12 @@ fn make_field_check(
|
|||
#[allow(unreachable_code, clippy::diverging_sub_expression, unused_assignments)]
|
||||
// SAFETY: this code is never executed.
|
||||
let _ = || unsafe {
|
||||
let mut zeroed = ::core::mem::zeroed();
|
||||
// We have to use type inference here to make zeroed have the correct type. This
|
||||
// does not get executed, so it has no effect.
|
||||
::core::ptr::write(slot, zeroed);
|
||||
zeroed = ::core::mem::zeroed();
|
||||
::core::ptr::write(slot, #path {
|
||||
#(
|
||||
#(#field_attrs)*
|
||||
#field_name: ::core::panic!(),
|
||||
)*
|
||||
..zeroed
|
||||
..::core::mem::zeroed()
|
||||
})
|
||||
};
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue