From 2cf492f49cfb05c5083c99a38634c2f40b6d3e84 Mon Sep 17 00:00:00 2001 From: Andrew Clayton Date: Tue, 2 Jul 2024 02:49:09 +0100 Subject: examples/rust: Fix some new rustc warnings With at least rustc 1.79.0 (129f3b996 2024-06-10) (Fedora 1.79.0-3.fc40) We were getting warnings when building the rust examples like warning: creating a mutable reference to mutable static is discouraged --> src/lib.rs:75:40 | 75 | let ctx: *mut luw_ctx_t = unsafe { &mut CTX }; | ^^^^^^^^ mutable reference to mutable static | = note: for more information, see issue #114447 = note: this will be a hard error in the 2024 edition = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior = note: `#[warn(static_mut_refs)]` on by default help: use `addr_of_mut!` instead to create a raw pointer | 75 | let ctx: *mut luw_ctx_t = unsafe { addr_of_mut!(CTX) }; | ~~~~~~~~~~~~~~~~~ So do like it says and use the addr_of_mut!() macro. Signed-off-by: Andrew Clayton --- examples/rust/upload-reflector/src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'examples/rust/upload-reflector/src/lib.rs') diff --git a/examples/rust/upload-reflector/src/lib.rs b/examples/rust/upload-reflector/src/lib.rs index ccef351..2f1992b 100644 --- a/examples/rust/upload-reflector/src/lib.rs +++ b/examples/rust/upload-reflector/src/lib.rs @@ -8,7 +8,7 @@ use unit_wasm::rusty::*; -use std::ptr::null_mut; +use std::ptr::{addr_of_mut, null_mut}; static mut CTX: luw_ctx_t = UWR_CTX_INITIALIZER(); @@ -72,7 +72,7 @@ pub fn upload_reflector(ctx: *mut luw_ctx_t) -> i32 { #[no_mangle] pub extern "C" fn uwr_request_handler(addr: *mut u8) -> i32 { - let ctx: *mut luw_ctx_t = unsafe { &mut CTX }; + let ctx: *mut luw_ctx_t = unsafe { addr_of_mut!(CTX) }; if unsafe { REQUEST_BUF.is_null() } { uwr_init_ctx(ctx, addr, 0 /* Response offset */); @@ -87,7 +87,7 @@ pub extern "C" fn uwr_request_handler(addr: *mut u8) -> i32 { */ uwr_set_req_buf( ctx, - unsafe { &mut REQUEST_BUF }, + unsafe { addr_of_mut!(REQUEST_BUF) }, LUW_SRB_APPEND | LUW_SRB_ALLOC | LUW_SRB_FULL_SIZE, ); } else { -- cgit