rust: enable clippy::ptr_cast_constness

Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2025-02-14 11:34:44 +01:00
parent 3a1c694d74
commit 5df3fe062f
7 changed files with 7 additions and 9 deletions

View file

@ -74,8 +74,6 @@ Supported tools
QEMU supports rustc version 1.63.0 and newer. Notably, the following features
are missing:
* ``cast_mut()``/``cast_const()`` (1.65.0). Use ``as`` instead.
* Generic Associated Types (1.65.0)
* ``CStr::from_bytes_with_nul()`` as a ``const`` function (1.72.0).

View file

@ -71,6 +71,7 @@ no_effect_underscore_binding = "deny"
option_option = "deny"
or_fun_call = "deny"
ptr_as_ptr = "deny"
ptr_cast_constness = "deny"
pub_underscore_fields = "deny"
redundant_clone = "deny"
redundant_closure_for_method_calls = "deny"
@ -92,7 +93,6 @@ used_underscore_binding = "deny"
# nice to have, but cannot be enabled yet
#wildcard_imports = "deny" # still have many bindings::* imports
#ptr_cast_constness = "deny" # needs 1.65.0 for cast_mut()/cast_const()
# these may have false positives
#option_if_let_else = "deny"

View file

@ -219,7 +219,7 @@ impl HPETTimer {
// SAFETY: the HPETTimer will only be used after the timer
// is initialized below.
qemu_timer: unsafe { Timer::new() },
state: NonNull::new(state as *const _ as *mut _).unwrap(),
state: NonNull::new((state as *const HPETState).cast_mut()).unwrap(),
config: 0,
cmp: 0,
fsb: 0,

View file

@ -1016,7 +1016,7 @@ impl<T> Opaque<T> {
/// Returns a raw pointer to the opaque data.
pub const fn as_ptr(&self) -> *const T {
self.as_mut_ptr() as *const _
self.as_mut_ptr().cast_const()
}
/// Returns a raw pointer to the opaque data that can be passed to a

View file

@ -160,7 +160,7 @@ impl CharBackend {
receive_cb,
event_cb,
None,
(owner as *const T as *mut T).cast::<c_void>(),
(owner as *const T).cast_mut().cast::<c_void>(),
core::ptr::null_mut(),
true,
);

View file

@ -388,7 +388,7 @@ where
{
#[allow(clippy::as_ptr_cast_mut)]
{
self.as_ptr::<U>() as *mut _
self.as_ptr::<U>().cast_mut()
}
}
}
@ -638,7 +638,7 @@ impl<T: ObjectType> Owned<T> {
// SAFETY NOTE: while NonNull requires a mutable pointer, only
// Deref is implemented so the pointer passed to from_raw
// remains const
Owned(NonNull::new(ptr as *mut T).unwrap())
Owned(NonNull::new(ptr.cast_mut()).unwrap())
}
/// Obtain a raw C pointer from a reference. `src` is consumed

View file

@ -81,7 +81,7 @@ impl Timer {
scale as c_int,
attributes as c_int,
Some(timer_cb),
(opaque as *const T).cast::<c_void>() as *mut c_void,
(opaque as *const T).cast::<c_void>().cast_mut(),
)
}
}