[INFO] fetching crate rust-rsm 0.3.2... [INFO] testing rust-rsm-0.3.2 against beta-2025-09-21 for beta-1.91-3 [INFO] extracting crate rust-rsm 0.3.2 into /workspace/builds/worker-2-tc2/source [INFO] started tweaking crates.io crate rust-rsm 0.3.2 [INFO] finished tweaking crates.io crate rust-rsm 0.3.2 [INFO] tweaked toml for crates.io crate rust-rsm 0.3.2 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate rust-rsm 0.3.2 on toolchain beta-2025-09-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate rust-rsm 0.3.2 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 809f90f0a499d581fe77199845d83725973d4abcf2b07fa57831be77f15c9b6b [INFO] running `Command { std: "docker" "start" "-a" "809f90f0a499d581fe77199845d83725973d4abcf2b07fa57831be77f15c9b6b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "809f90f0a499d581fe77199845d83725973d4abcf2b07fa57831be77f15c9b6b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "809f90f0a499d581fe77199845d83725973d4abcf2b07fa57831be77f15c9b6b", kill_on_drop: false }` [INFO] [stdout] 809f90f0a499d581fe77199845d83725973d4abcf2b07fa57831be77f15c9b6b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e28e571206642b734a2747076160ba3f506a06007895a60b46b06dc91946a7fa [INFO] running `Command { std: "docker" "start" "-a" "e28e571206642b734a2747076160ba3f506a06007895a60b46b06dc91946a7fa", kill_on_drop: false }` [INFO] [stderr] Compiling typenum v1.15.0 [INFO] [stderr] Compiling libc v0.2.126 [INFO] [stderr] Compiling proc-macro2 v1.0.40 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling quote v1.0.20 [INFO] [stderr] Compiling unicode-ident v1.0.1 [INFO] [stderr] Compiling syn v1.0.98 [INFO] [stderr] Compiling generic-array v0.14.5 [INFO] [stderr] Compiling serde_derive v1.0.139 [INFO] [stderr] Compiling cc v1.0.73 [INFO] [stderr] Compiling tinyvec_macros v0.1.0 [INFO] [stderr] Compiling serde v1.0.139 [INFO] [stderr] Compiling tinyvec v1.6.0 [INFO] [stderr] Compiling log v0.4.17 [INFO] [stderr] Compiling matches v0.1.9 [INFO] [stderr] Compiling percent-encoding v2.1.0 [INFO] [stderr] Compiling itoa v1.0.2 [INFO] [stderr] Compiling unicode-bidi v0.3.8 [INFO] [stderr] Compiling getrandom v0.2.7 [INFO] [stderr] Compiling form_urlencoded v1.0.1 [INFO] [stderr] Compiling rand_core v0.6.3 [INFO] [stderr] Compiling serde_json v1.0.82 [INFO] [stderr] Compiling num_threads v0.1.6 [INFO] [stderr] Compiling ppv-lite86 v0.2.16 [INFO] [stderr] Compiling time-macros v0.2.4 [INFO] [stderr] Compiling unicode-normalization v0.1.21 [INFO] [stderr] Compiling cpufeatures v0.2.2 [INFO] [stderr] Compiling chunked_transfer v1.4.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling libdeflate-sys v0.10.0 [INFO] [stderr] Compiling rust-rsm v0.3.2 (/opt/rustwide/workdir) [INFO] [stderr] Compiling ryu v1.0.10 [INFO] [stderr] Compiling idna v0.2.3 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling inout v0.1.3 [INFO] [stderr] Compiling block-buffer v0.10.2 [INFO] [stderr] Compiling url v2.2.2 [INFO] [stderr] Compiling cipher v0.4.3 [INFO] [stderr] Compiling digest v0.10.3 [INFO] [stderr] Compiling ascii v1.0.0 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling sm4 v0.5.1 [INFO] [stderr] Compiling aes v0.8.1 [INFO] [stderr] Compiling sha2 v0.10.2 [INFO] [stderr] warning: rust-rsm@0.3.2: src/net_ext/os_linux.c: In function 'c_create_timer': [INFO] [stderr] warning: rust-rsm@0.3.2: src/net_ext/os_linux.c:175:31: warning: assignment to 'void (*)(__sigval_t)' {aka 'void (*)(union sigval)'} from incompatible pointer type 'timer_callback' {aka 'int (*)(sigval_t)'} [-Wincompatible-pointer-types] [INFO] [stderr] warning: rust-rsm@0.3.2: 175 | sev.sigev_notify_function = call_back; [INFO] [stderr] warning: rust-rsm@0.3.2: | ^ [INFO] [stderr] Compiling mio v0.8.4 [INFO] [stderr] Compiling libdeflater v0.10.0 [INFO] [stderr] Compiling time v0.3.11 [INFO] [stderr] Compiling tiny_http v0.11.0 [INFO] [stdout] warning: unused import: `mem` [INFO] [stdout] --> src/common/ringbuf.rs:7:21 [INFO] [stdout] | [INFO] [stdout] 7 | use std::{cmp,alloc,mem,ptr}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::ffi::c_void` [INFO] [stdout] --> src/rsm/os_timer.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use core::ffi::c_void; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/rsm/os_timer.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::common::{self,tsidallocator::TsIdAllocator,tsmap::TsHashMap}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated [INFO] [stdout] --> src/rsm/os_timer.rs:41:30 [INFO] [stdout] | [INFO] [stdout] 41 | type os_callback_fn = unsafe extern fn(ev:libc::sigval); [INFO] [stdout] | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(missing_abi)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::ffi::c_void` [INFO] [stdout] --> src/rsm/socket/poll.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use core::ffi::c_void; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:12:20 [INFO] [stdout] | [INFO] [stdout] 12 | use std::io::{self,Read,Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `libc` [INFO] [stdout] --> src/net_ext/rawpacket.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use libc; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::mem` [INFO] [stdout] --> src/net_ext/netinterface.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::mem; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Error` [INFO] [stdout] --> src/net_ext/netinterface.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::io::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UdpSocket` [INFO] [stdout] --> src/net_ext/unix/rawsocket.rs:10:16 [INFO] [stdout] | [INFO] [stdout] 10 | use std::net::{UdpSocket,SocketAddr,SocketAddrV6,SocketAddrV4}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Aes256` [INFO] [stdout] --> src/alg/crypto.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | use aes::{self,Aes128,Aes256, Block}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/rsm/rsm_sched.rs:255:9 [INFO] [stdout] | [INFO] [stdout] 255 | _=>(libc::SCHED_OTHER,0), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/rsm/rsm_sched.rs:255:9 [INFO] [stdout] | [INFO] [stdout] 249 | E_RSM_TASK_PRIORITY::THREAD_PRI_LOW=>(libc::SCHED_OTHER,0), [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 250 | E_RSM_TASK_PRIORITY::THREAD_PRI_NORMAL=>(libc::SCHED_OTHER,50), [INFO] [stdout] | -------------------------------------- matches some of the same values [INFO] [stdout] 251 | E_RSM_TASK_PRIORITY::THREAD_PRI_HIGH=>(libc::SCHED_OTHER,80), [INFO] [stdout] | ------------------------------------ matches some of the same values [INFO] [stdout] 252 | E_RSM_TASK_PRIORITY::THREAD_PRI_REALTIME=>(libc::SCHED_RR,10), [INFO] [stdout] | ---------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 255 | _=>(libc::SCHED_OTHER,0), [INFO] [stdout] | ^ ...and 2 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rsm/os_timer.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | let mut its = libc::itimerspec { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:233:8 [INFO] [stdout] | [INFO] [stdout] 233 | let mut client = match self.RegisterLogModule(&msg.ModuleName, sender) { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `msgStru` [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:326:37 [INFO] [stdout] | [INFO] [stdout] 326 | fn send_to_syslog_server(&mut self,msgStru:&InnerLogMsg, formated_msg:&String) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msgStru` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/net_ext/netinterface.rs:236:21 [INFO] [stdout] | [INFO] [stdout] 236 | if let Some(mut if_info) = ifmap.get_mut(&ifname) { [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `c` is never read [INFO] [stdout] --> src/alg/spf.rs:357:10 [INFO] [stdout] | [INFO] [stdout] 357 | let mut c=0u32; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `alt` is never read [INFO] [stdout] --> src/alg/spf.rs:358:13 [INFO] [stdout] | [INFO] [stdout] 358 | let mut alt=0u32; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `m` is never read [INFO] [stdout] --> src/alg/mod.rs:95:17 [INFO] [stdout] | [INFO] [stdout] 95 | let mut m:HashSet=HashSet::with_capacity(v1.len()<<1); [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `local_addr` is never read [INFO] [stdout] --> src/net_ext/restserver.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct RestServer { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 31 | local_addr: net::SocketAddr, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/common/errcode.rs:74:19 [INFO] [stdout] | [INFO] [stdout] 74 | match unsafe {&ErrorNameMap} { [INFO] [stdout] | ^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 74 | match unsafe {&raw const ErrorNameMap} { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/common/errcode.rs:124:8 [INFO] [stdout] | [INFO] [stdout] 124 | if ErrorNameMap.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/common/errcode.rs:128:31 [INFO] [stdout] | [INFO] [stdout] 128 | if let Some(errm)=unsafe {&ErrorNameMap} { [INFO] [stdout] | ^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 128 | if let Some(errm)=unsafe {&raw const ErrorNameMap} { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/common/tsqueue.rs:49:17 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn iter(&self) -> Iter { [INFO] [stdout] | ^^^^^ ^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 49 | pub fn iter(&self) -> Iter<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/common/tsqueue.rs:56:21 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn iter_mut(&mut self) -> IterMut { [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 56 | pub fn iter_mut(&mut self) -> IterMut<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/common/rawstring.rs:64:31 [INFO] [stdout] | [INFO] [stdout] 64 | String::from_utf16_lossy(&(*(ustr as *const [u16;MAX_STRING_LEN]))[0..raw_len]).to_string() [INFO] [stdout] | ^^-------------------------------------^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const [u16; 1024]` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[u16; 1024]` [INFO] [stdout] --> src/common/rawstring.rs:64:31 [INFO] [stdout] | [INFO] [stdout] 64 | String::from_utf16_lossy(&(*(ustr as *const [u16;MAX_STRING_LEN]))[0..raw_len]).to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(dangerous_implicit_autorefs)]` on by default [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 64 | String::from_utf16_lossy(&(&(*(ustr as *const [u16;MAX_STRING_LEN])))[0..raw_len]).to_string() [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/common/atomicqueue.rs:164:17 [INFO] [stdout] | [INFO] [stdout] 164 | pub fn iter(&self) -> Iter { [INFO] [stdout] | ^^^^^ ^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 164 | pub fn iter(&self) -> Iter<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/common/atomicqueue.rs:173:21 [INFO] [stdout] | [INFO] [stdout] 173 | pub fn iter_mut(&mut self) -> Iter { [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 173 | pub fn iter_mut(&mut self) -> Iter<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/mod.rs:337:8 [INFO] [stdout] | [INFO] [stdout] 337 | if gRsmConfig.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/mod.rs:411:35 [INFO] [stdout] | [INFO] [stdout] 411 | let serv_addr = match unsafe {&gRsmConfig} { [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 411 | let serv_addr = match unsafe {&raw const gRsmConfig} { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:46:25 [INFO] [stdout] | [INFO] [stdout] 46 | if let Some(tl)=&mut gTaskList { [INFO] [stdout] | ^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 46 | if let Some(tl)=&raw mut gTaskList { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:52:32 [INFO] [stdout] | [INFO] [stdout] 52 | let ptMap = match unsafe { &mut gTaskRegistry } { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 52 | let ptMap = match unsafe { &raw mut gTaskRegistry } { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:70:32 [INFO] [stdout] | [INFO] [stdout] 70 | let pcMap = match unsafe { &mut gComponentRegistry } { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 70 | let pcMap = match unsafe { &raw mut gComponentRegistry } { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:92:34 [INFO] [stdout] | [INFO] [stdout] 92 | let tEntries = match unsafe {&mut gTaskRegistry} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 92 | let tEntries = match unsafe {&raw mut gTaskRegistry} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:96:28 [INFO] [stdout] | [INFO] [stdout] 96 | let tl = match unsafe {&gTaskList} { [INFO] [stdout] | ^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 96 | let tl = match unsafe {&raw const gTaskList} { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/rsm/rsm_sched.rs:105:28 [INFO] [stdout] | [INFO] [stdout] 105 | ts.push((t,task.clone())); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `task_t` does not implement `Clone`, so calling `clone` on `&task_t` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 105 - ts.push((t,task.clone())); [INFO] [stdout] 105 + ts.push((t,task)); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `task_t`, implement `Clone` for it [INFO] [stdout] --> src/rsm/task.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 + #[derive(Clone)] [INFO] [stdout] 25 | pub(crate) struct task_t{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:125:31 [INFO] [stdout] | [INFO] [stdout] 125 | let gTask = match unsafe {&mut gTaskRegistry} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 125 | let gTask = match unsafe {&raw mut gTaskRegistry} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:138:32 [INFO] [stdout] | [INFO] [stdout] 138 | if let Some(tm) = unsafe { & mut gTaskIdMap} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 138 | if let Some(tm) = unsafe { &raw mut gTaskIdMap} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:149:31 [INFO] [stdout] | [INFO] [stdout] 149 | if let Some(tm) = unsafe {&mut gTaskIdMap} { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 149 | if let Some(tm) = unsafe {&raw mut gTaskIdMap} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:159:26 [INFO] [stdout] | [INFO] [stdout] 159 | let tm = match unsafe {&mut gTaskRegistry} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 159 | let tm = match unsafe {&raw mut gTaskRegistry} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:186:30 [INFO] [stdout] | [INFO] [stdout] 186 | let task = match unsafe {&mut gTaskRegistry} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 186 | let task = match unsafe {&raw mut gTaskRegistry} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:199:30 [INFO] [stdout] | [INFO] [stdout] 199 | let task = match unsafe {&mut gTaskRegistry} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 199 | let task = match unsafe {&raw mut gTaskRegistry} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:211:28 [INFO] [stdout] | [INFO] [stdout] 211 | let cm = match unsafe {& gComponentRegistry} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 211 | let cm = match unsafe {&raw const gComponentRegistry} { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:221:30 [INFO] [stdout] | [INFO] [stdout] 221 | let task = match unsafe {&mut gTaskRegistry} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 221 | let task = match unsafe {&raw mut gTaskRegistry} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 52 | if gTimerIdAlloc.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:66:24 [INFO] [stdout] | [INFO] [stdout] 66 | return unsafe {(&mut gTimer10ms).as_mut()} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 66 | return unsafe {(&raw mut gTimer10ms).as_mut()} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:68:24 [INFO] [stdout] | [INFO] [stdout] 68 | return unsafe {(&mut gTimer100ms).as_mut()} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 68 | return unsafe {(&raw mut gTimer100ms).as_mut()} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:70:20 [INFO] [stdout] | [INFO] [stdout] 70 | return unsafe {(&mut gTimer1s).as_mut()} [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 70 | return unsafe {(&raw mut gTimer1s).as_mut()} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:75:41 [INFO] [stdout] | [INFO] [stdout] 75 | TIMER_CAT_10MS=> return unsafe {(&mut gTimer10ms).as_mut()}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 75 | TIMER_CAT_10MS=> return unsafe {(&raw mut gTimer10ms).as_mut()}, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:76:42 [INFO] [stdout] | [INFO] [stdout] 76 | TIMER_CAT_100MS=> return unsafe {(&mut gTimer100ms).as_mut()}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 76 | TIMER_CAT_100MS=> return unsafe {(&raw mut gTimer100ms).as_mut()}, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:77:39 [INFO] [stdout] | [INFO] [stdout] 77 | TIMER_CAT_1S=> return unsafe {(&mut gTimer1s).as_mut()}, [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 77 | TIMER_CAT_1S=> return unsafe {(&raw mut gTimer1s).as_mut()}, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:103:30 [INFO] [stdout] | [INFO] [stdout] 103 | let ida = match unsafe { &mut gTimerIdAlloc} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 103 | let ida = match unsafe { &raw mut gTimerIdAlloc} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:162:20 [INFO] [stdout] | [INFO] [stdout] 162 | match unsafe { &mut gTimerIdAlloc} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 162 | match unsafe { &raw mut gTimerIdAlloc} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:244:31 [INFO] [stdout] | [INFO] [stdout] 244 | let tMap = match unsafe { &mut gTimer10ms} { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 244 | let tMap = match unsafe { &raw mut gTimer10ms} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:252:31 [INFO] [stdout] | [INFO] [stdout] 252 | let tMap = match unsafe { &mut gTimer100ms} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 252 | let tMap = match unsafe { &raw mut gTimer100ms} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:260:31 [INFO] [stdout] | [INFO] [stdout] 260 | let tMap = match unsafe { &mut gTimer1s} { [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 260 | let tMap = match unsafe { &raw mut gTimer1s} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:291:30 [INFO] [stdout] | [INFO] [stdout] 291 | stats.total = match &gTimerIdAlloc { [INFO] [stdout] | ^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 291 | stats.total = match &raw const gTimerIdAlloc { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:296:40 [INFO] [stdout] | [INFO] [stdout] 296 | stats.timer_count_10ms = match &gTimer10ms { [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 296 | stats.timer_count_10ms = match &raw const gTimer10ms { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:301:41 [INFO] [stdout] | [INFO] [stdout] 301 | stats.timer_count_100ms = match &gTimer100ms { [INFO] [stdout] | ^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 301 | stats.timer_count_100ms = match &raw const gTimer100ms { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:305:38 [INFO] [stdout] | [INFO] [stdout] 305 | stats.timer_count_1s = match &gTimer1s { [INFO] [stdout] | ^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 305 | stats.timer_count_1s = match &raw const gTimer1s { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/os_timer.rs:74:34 [INFO] [stdout] | [INFO] [stdout] 74 | let tid = match unsafe { &mut gOsTimerAlloc} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 74 | let tid = match unsafe { &raw mut gOsTimerAlloc} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/os_timer.rs:119:12 [INFO] [stdout] | [INFO] [stdout] 119 | if gOsTimerAlloc.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/os_timer.rs:122:12 [INFO] [stdout] | [INFO] [stdout] 122 | if gOsTimerMap.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/os_timer.rs:129:28 [INFO] [stdout] | [INFO] [stdout] 129 | let tm = match unsafe {&mut gOsTimerMap} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 129 | let tm = match unsafe {&raw mut gOsTimerMap} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/os_timer.rs:136:28 [INFO] [stdout] | [INFO] [stdout] 136 | let tm = match unsafe {&mut gOsTimerMap} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 136 | let tm = match unsafe {&raw mut gOsTimerMap} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/socket/socketpool.rs:284:30 [INFO] [stdout] | [INFO] [stdout] 284 | let pool = match unsafe {&mut gSocketPool} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 284 | let pool = match unsafe {&raw mut gSocketPool} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/socket/socketpool.rs:293:30 [INFO] [stdout] | [INFO] [stdout] 293 | let pool = match unsafe {&mut gSocketPool} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 293 | let pool = match unsafe {&raw mut gSocketPool} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/socket/socketpool.rs:302:30 [INFO] [stdout] | [INFO] [stdout] 302 | let pool = match unsafe {&mut gSocketPool} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 302 | let pool = match unsafe {&raw mut gSocketPool} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/socket/socketpool.rs:331:30 [INFO] [stdout] | [INFO] [stdout] 331 | let pool = match unsafe {&mut gSocketPool} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 331 | let pool = match unsafe {&raw mut gSocketPool} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/socket/socketpool.rs:343:36 [INFO] [stdout] | [INFO] [stdout] 343 | let pool_inst = match unsafe { &mut gSocketPool} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 343 | let pool_inst = match unsafe { &raw mut gSocketPool} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/socket/socketpool.rs:428:29 [INFO] [stdout] | [INFO] [stdout] 428 | let pool = match unsafe{&mut gSocketPool} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 428 | let pool = match unsafe{&raw mut gSocketPool} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/rsm/xlog/mod.rs:178:2 [INFO] [stdout] | [INFO] [stdout] 178 | fp2.write(&vec_buf_out.as_slice()[0..comp_len]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 178 | let _ = fp2.write(&vec_buf_out.as_slice()[0..comp_len]); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/rsm/xlog/mod.rs:179:2 [INFO] [stdout] | [INFO] [stdout] 179 | fp2.flush(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 179 | let _ = fp2.flush(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:413:8 [INFO] [stdout] | [INFO] [stdout] 413 | if gLogServer.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:417:28 [INFO] [stdout] | [INFO] [stdout] 417 | let service=match unsafe {&mut gLogServer} { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 417 | let service=match unsafe {&raw mut gLogServer} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:436:28 [INFO] [stdout] | [INFO] [stdout] 436 | let service=match unsafe {&mut gLogServer} { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 436 | let service=match unsafe {&raw mut gLogServer} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:451:28 [INFO] [stdout] | [INFO] [stdout] 451 | let service=match unsafe {&mut gLogServer} { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 451 | let service=match unsafe {&raw mut gLogServer} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:463:28 [INFO] [stdout] | [INFO] [stdout] 463 | let service=match unsafe {&mut gLogServer} { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 463 | let service=match unsafe {&raw mut gLogServer} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:474:28 [INFO] [stdout] | [INFO] [stdout] 474 | let service=match unsafe {&mut gLogServer} { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 474 | let service=match unsafe {&raw mut gLogServer} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:504:30 [INFO] [stdout] | [INFO] [stdout] 504 | let log_serv = match unsafe{&mut gLogServer} { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 504 | let log_serv = match unsafe{&raw mut gLogServer} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/oam/mod.rs:67:29 [INFO] [stdout] | [INFO] [stdout] 67 | let map = match unsafe {&mut gMapOpStr2Int} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 67 | let map = match unsafe {&raw mut gMapOpStr2Int} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/oam/oam_main.rs:62:29 [INFO] [stdout] | [INFO] [stdout] 62 | let inst =match unsafe {&mut gOamInst} { [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 62 | let inst =match unsafe {&raw mut gOamInst} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/oam/oam_main.rs:166:12 [INFO] [stdout] | [INFO] [stdout] 166 | if gOamInst.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/oam/oam_main.rs:197:29 [INFO] [stdout] | [INFO] [stdout] 197 | let inst =match unsafe {&mut gOamInst} { [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 197 | let inst =match unsafe {&raw mut gOamInst} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/oam/oam_main.rs:208:29 [INFO] [stdout] | [INFO] [stdout] 208 | let inst =match unsafe {&mut gOamInst} { [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 208 | let inst =match unsafe {&raw mut gOamInst} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/oam/oam_main.rs:255:29 [INFO] [stdout] | [INFO] [stdout] 255 | let inst =match unsafe {&mut gOamInst} { [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 255 | let inst =match unsafe {&raw mut gOamInst} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/net_ext/pktbuf.rs:48:18 [INFO] [stdout] | [INFO] [stdout] 48 | return & (*(self.buf_ptr as *const [u8;MAX_PKT_BUF_SIZE as usize]))[0..self.buf_len as usize] [INFO] [stdout] | ^^-------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const [u8; 2048]` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[u8; 2048]` [INFO] [stdout] --> src/net_ext/pktbuf.rs:48:18 [INFO] [stdout] | [INFO] [stdout] 48 | return & (*(self.buf_ptr as *const [u8;MAX_PKT_BUF_SIZE as usize]))[0..self.buf_len as usize] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 48 | return & (&(*(self.buf_ptr as *const [u8;MAX_PKT_BUF_SIZE as usize])))[0..self.buf_len as usize] [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/net_ext/pktbuf.rs:53:21 [INFO] [stdout] | [INFO] [stdout] 53 | return &mut (*(self.buf_ptr as *mut [u8;MAX_PKT_BUF_SIZE as usize]))[0..self.buf_len as usize] [INFO] [stdout] | ^^-----------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut [u8; 2048]` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&mut [u8; 2048]` [INFO] [stdout] --> src/net_ext/pktbuf.rs:53:21 [INFO] [stdout] | [INFO] [stdout] 53 | return &mut (*(self.buf_ptr as *mut [u8;MAX_PKT_BUF_SIZE as usize]))[0..self.buf_len as usize] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 53 | return &mut (&mut (*(self.buf_ptr as *mut [u8;MAX_PKT_BUF_SIZE as usize])))[0..self.buf_len as usize] [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/net_ext/pktbuf.rs:214:29 [INFO] [stdout] | [INFO] [stdout] 214 | match unsafe { &mut GlobalRecvPktBufs } { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 214 | match unsafe { &raw mut GlobalRecvPktBufs } { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/net_ext/pktbuf.rs:220:28 [INFO] [stdout] | [INFO] [stdout] 220 | match unsafe { &mut GlobalSendPktBufs } { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 220 | match unsafe { &raw mut GlobalSendPktBufs } { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/net_ext/fec.rs:300:14 [INFO] [stdout] | [INFO] [stdout] 300 | ... &(*(&self.hdr as *const fec_header_t as *const u8 as *const [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE]))[0..FEC_HDR_SIZE+self.real_len as usize] [INFO] [stdout] | ^^--------------------------------------------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const [u8; 2080]` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[u8; 2080]` [INFO] [stdout] --> src/net_ext/fec.rs:300:14 [INFO] [stdout] | [INFO] [stdout] 300 | ... &(*(&self.hdr as *const fec_header_t as *const u8 as *const [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE]))[0..FEC_HDR_SIZE+self.real_len as u... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 300 | &(&(*(&self.hdr as *const fec_header_t as *const u8 as *const [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE])))[0..FEC_HDR_SIZE+self.real_len as usize] [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/net_ext/fec.rs:306:18 [INFO] [stdout] | [INFO] [stdout] 306 | ...ut (*(&mut self.hdr as *mut fec_header_t as *mut u8 as *mut [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE]))[0..FEC_HDR_SIZE+self.real_len as usize] [INFO] [stdout] | ^^------------------------------------------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut [u8; 2080]` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&mut [u8; 2080]` [INFO] [stdout] --> src/net_ext/fec.rs:306:18 [INFO] [stdout] | [INFO] [stdout] 306 | ... &mut (*(&mut self.hdr as *mut fec_header_t as *mut u8 as *mut [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE]))[0..FEC_HDR_SIZE+self.real_len as... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 306 | &mut (&mut (*(&mut self.hdr as *mut fec_header_t as *mut u8 as *mut [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE])))[0..FEC_HDR_SIZE+self.real_len as usize] [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Error` [INFO] [stdout] --> src/main.rs:21:15 [INFO] [stdout] | [INFO] [stdout] 21 | use std::io::{Error}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mem` [INFO] [stdout] --> src/common/ringbuf.rs:7:21 [INFO] [stdout] | [INFO] [stdout] 7 | use std::{cmp,alloc,mem,ptr}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::ffi::c_void` [INFO] [stdout] --> src/rsm/os_timer.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use core::ffi::c_void; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/rsm/os_timer.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::common::{self,tsidallocator::TsIdAllocator,tsmap::TsHashMap}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated [INFO] [stdout] --> src/rsm/os_timer.rs:41:30 [INFO] [stdout] | [INFO] [stdout] 41 | type os_callback_fn = unsafe extern fn(ev:libc::sigval); [INFO] [stdout] | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(missing_abi)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::ffi::c_void` [INFO] [stdout] --> src/rsm/socket/poll.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use core::ffi::c_void; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:12:20 [INFO] [stdout] | [INFO] [stdout] 12 | use std::io::{self,Read,Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Aes256` [INFO] [stdout] --> src/alg/crypto.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | use aes::{self,Aes128,Aes256, Block}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `libc` [INFO] [stdout] --> src/net_ext/rawpacket.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use libc; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::mem` [INFO] [stdout] --> src/net_ext/netinterface.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::mem; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Error` [INFO] [stdout] --> src/net_ext/netinterface.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::io::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UdpSocket` [INFO] [stdout] --> src/net_ext/unix/rawsocket.rs:10:16 [INFO] [stdout] | [INFO] [stdout] 10 | use std::net::{UdpSocket,SocketAddr,SocketAddrV6,SocketAddrV4}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/rsm/rsm_sched.rs:255:9 [INFO] [stdout] | [INFO] [stdout] 255 | _=>(libc::SCHED_OTHER,0), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/rsm/rsm_sched.rs:255:9 [INFO] [stdout] | [INFO] [stdout] 249 | E_RSM_TASK_PRIORITY::THREAD_PRI_LOW=>(libc::SCHED_OTHER,0), [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 250 | E_RSM_TASK_PRIORITY::THREAD_PRI_NORMAL=>(libc::SCHED_OTHER,50), [INFO] [stdout] | -------------------------------------- matches some of the same values [INFO] [stdout] 251 | E_RSM_TASK_PRIORITY::THREAD_PRI_HIGH=>(libc::SCHED_OTHER,80), [INFO] [stdout] | ------------------------------------ matches some of the same values [INFO] [stdout] 252 | E_RSM_TASK_PRIORITY::THREAD_PRI_REALTIME=>(libc::SCHED_RR,10), [INFO] [stdout] | ---------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 255 | _=>(libc::SCHED_OTHER,0), [INFO] [stdout] | ^ ...and 2 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rsm/os_timer.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | let mut its = libc::itimerspec { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:233:8 [INFO] [stdout] | [INFO] [stdout] 233 | let mut client = match self.RegisterLogModule(&msg.ModuleName, sender) { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `msgStru` [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:326:37 [INFO] [stdout] | [INFO] [stdout] 326 | fn send_to_syslog_server(&mut self,msgStru:&InnerLogMsg, formated_msg:&String) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msgStru` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `c` is never read [INFO] [stdout] --> src/alg/spf.rs:357:10 [INFO] [stdout] | [INFO] [stdout] 357 | let mut c=0u32; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `alt` is never read [INFO] [stdout] --> src/alg/spf.rs:358:13 [INFO] [stdout] | [INFO] [stdout] 358 | let mut alt=0u32; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `m` is never read [INFO] [stdout] --> src/alg/mod.rs:95:17 [INFO] [stdout] | [INFO] [stdout] 95 | let mut m:HashSet=HashSet::with_capacity(v1.len()<<1); [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/net_ext/netinterface.rs:236:21 [INFO] [stdout] | [INFO] [stdout] 236 | if let Some(mut if_info) = ifmap.get_mut(&ifname) { [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cid` [INFO] [stdout] --> src/main.rs:55:34 [INFO] [stdout] | [INFO] [stdout] 55 | fn on_socket_event(&mut self,cid:&rsm::rsm_component_t,event:rsm::rsm_socket_event_t) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cid` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event` [INFO] [stdout] --> src/main.rs:55:60 [INFO] [stdout] | [INFO] [stdout] 55 | fn on_socket_event(&mut self,cid:&rsm::rsm_component_t,event:rsm::rsm_socket_event_t) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_event` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cid` [INFO] [stdout] --> src/main.rs:72:27 [INFO] [stdout] | [INFO] [stdout] 72 | fn on_close(&mut self,cid:&rsm::rsm_component_t) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cid` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rsm_conf` [INFO] [stdout] --> src/main.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | let rsm_conf = match config::load_rsm_cfg(fpath) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rsm_conf` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/main.rs:44:63 [INFO] [stdout] | [INFO] [stdout] 44 | let msg= rsm::rsm_message_t::new::(10015,unsafe {&data}).unwrap(); [INFO] [stdout] | ^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 44 | let msg= rsm::rsm_message_t::new::(10015,unsafe {&raw const data}).unwrap(); [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/main.rs:79:24 [INFO] [stdout] | [INFO] [stdout] 79 | let apps = unsafe {&mut sampleApp}; [INFO] [stdout] | ^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 79 | let apps = unsafe {&raw mut sampleApp}; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/common/errcode.rs:74:19 [INFO] [stdout] | [INFO] [stdout] 74 | match unsafe {&ErrorNameMap} { [INFO] [stdout] | ^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 74 | match unsafe {&raw const ErrorNameMap} { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/common/errcode.rs:124:8 [INFO] [stdout] | [INFO] [stdout] 124 | if ErrorNameMap.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/common/errcode.rs:128:31 [INFO] [stdout] | [INFO] [stdout] 128 | if let Some(errm)=unsafe {&ErrorNameMap} { [INFO] [stdout] | ^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 128 | if let Some(errm)=unsafe {&raw const ErrorNameMap} { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/common/tsqueue.rs:49:17 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn iter(&self) -> Iter { [INFO] [stdout] | ^^^^^ ^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 49 | pub fn iter(&self) -> Iter<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/common/tsqueue.rs:56:21 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn iter_mut(&mut self) -> IterMut { [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 56 | pub fn iter_mut(&mut self) -> IterMut<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/common/rawstring.rs:64:31 [INFO] [stdout] | [INFO] [stdout] 64 | String::from_utf16_lossy(&(*(ustr as *const [u16;MAX_STRING_LEN]))[0..raw_len]).to_string() [INFO] [stdout] | ^^-------------------------------------^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const [u16; 1024]` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[u16; 1024]` [INFO] [stdout] --> src/common/rawstring.rs:64:31 [INFO] [stdout] | [INFO] [stdout] 64 | String::from_utf16_lossy(&(*(ustr as *const [u16;MAX_STRING_LEN]))[0..raw_len]).to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(dangerous_implicit_autorefs)]` on by default [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 64 | String::from_utf16_lossy(&(&(*(ustr as *const [u16;MAX_STRING_LEN])))[0..raw_len]).to_string() [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/common/atomicqueue.rs:164:17 [INFO] [stdout] | [INFO] [stdout] 164 | pub fn iter(&self) -> Iter { [INFO] [stdout] | ^^^^^ ^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 164 | pub fn iter(&self) -> Iter<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/common/atomicqueue.rs:173:21 [INFO] [stdout] | [INFO] [stdout] 173 | pub fn iter_mut(&mut self) -> Iter { [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 173 | pub fn iter_mut(&mut self) -> Iter<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/mod.rs:337:8 [INFO] [stdout] | [INFO] [stdout] 337 | if gRsmConfig.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/mod.rs:411:35 [INFO] [stdout] | [INFO] [stdout] 411 | let serv_addr = match unsafe {&gRsmConfig} { [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 411 | let serv_addr = match unsafe {&raw const gRsmConfig} { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:46:25 [INFO] [stdout] | [INFO] [stdout] 46 | if let Some(tl)=&mut gTaskList { [INFO] [stdout] | ^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 46 | if let Some(tl)=&raw mut gTaskList { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:52:32 [INFO] [stdout] | [INFO] [stdout] 52 | let ptMap = match unsafe { &mut gTaskRegistry } { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 52 | let ptMap = match unsafe { &raw mut gTaskRegistry } { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:70:32 [INFO] [stdout] | [INFO] [stdout] 70 | let pcMap = match unsafe { &mut gComponentRegistry } { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 70 | let pcMap = match unsafe { &raw mut gComponentRegistry } { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:92:34 [INFO] [stdout] | [INFO] [stdout] 92 | let tEntries = match unsafe {&mut gTaskRegistry} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 92 | let tEntries = match unsafe {&raw mut gTaskRegistry} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:96:28 [INFO] [stdout] | [INFO] [stdout] 96 | let tl = match unsafe {&gTaskList} { [INFO] [stdout] | ^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 96 | let tl = match unsafe {&raw const gTaskList} { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/rsm/rsm_sched.rs:105:28 [INFO] [stdout] | [INFO] [stdout] 105 | ts.push((t,task.clone())); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `task_t` does not implement `Clone`, so calling `clone` on `&task_t` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 105 - ts.push((t,task.clone())); [INFO] [stdout] 105 + ts.push((t,task)); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `task_t`, implement `Clone` for it [INFO] [stdout] --> src/rsm/task.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 + #[derive(Clone)] [INFO] [stdout] 25 | pub(crate) struct task_t{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:125:31 [INFO] [stdout] | [INFO] [stdout] 125 | let gTask = match unsafe {&mut gTaskRegistry} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 125 | let gTask = match unsafe {&raw mut gTaskRegistry} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:138:32 [INFO] [stdout] | [INFO] [stdout] 138 | if let Some(tm) = unsafe { & mut gTaskIdMap} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 138 | if let Some(tm) = unsafe { &raw mut gTaskIdMap} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:149:31 [INFO] [stdout] | [INFO] [stdout] 149 | if let Some(tm) = unsafe {&mut gTaskIdMap} { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 149 | if let Some(tm) = unsafe {&raw mut gTaskIdMap} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:159:26 [INFO] [stdout] | [INFO] [stdout] 159 | let tm = match unsafe {&mut gTaskRegistry} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 159 | let tm = match unsafe {&raw mut gTaskRegistry} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:186:30 [INFO] [stdout] | [INFO] [stdout] 186 | let task = match unsafe {&mut gTaskRegistry} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 186 | let task = match unsafe {&raw mut gTaskRegistry} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:199:30 [INFO] [stdout] | [INFO] [stdout] 199 | let task = match unsafe {&mut gTaskRegistry} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 199 | let task = match unsafe {&raw mut gTaskRegistry} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:211:28 [INFO] [stdout] | [INFO] [stdout] 211 | let cm = match unsafe {& gComponentRegistry} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 211 | let cm = match unsafe {&raw const gComponentRegistry} { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_sched.rs:221:30 [INFO] [stdout] | [INFO] [stdout] 221 | let task = match unsafe {&mut gTaskRegistry} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 221 | let task = match unsafe {&raw mut gTaskRegistry} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 52 | if gTimerIdAlloc.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:66:24 [INFO] [stdout] | [INFO] [stdout] 66 | return unsafe {(&mut gTimer10ms).as_mut()} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 66 | return unsafe {(&raw mut gTimer10ms).as_mut()} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:68:24 [INFO] [stdout] | [INFO] [stdout] 68 | return unsafe {(&mut gTimer100ms).as_mut()} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 68 | return unsafe {(&raw mut gTimer100ms).as_mut()} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:70:20 [INFO] [stdout] | [INFO] [stdout] 70 | return unsafe {(&mut gTimer1s).as_mut()} [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 70 | return unsafe {(&raw mut gTimer1s).as_mut()} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:75:41 [INFO] [stdout] | [INFO] [stdout] 75 | TIMER_CAT_10MS=> return unsafe {(&mut gTimer10ms).as_mut()}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 75 | TIMER_CAT_10MS=> return unsafe {(&raw mut gTimer10ms).as_mut()}, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:76:42 [INFO] [stdout] | [INFO] [stdout] 76 | TIMER_CAT_100MS=> return unsafe {(&mut gTimer100ms).as_mut()}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 76 | TIMER_CAT_100MS=> return unsafe {(&raw mut gTimer100ms).as_mut()}, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:77:39 [INFO] [stdout] | [INFO] [stdout] 77 | TIMER_CAT_1S=> return unsafe {(&mut gTimer1s).as_mut()}, [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 77 | TIMER_CAT_1S=> return unsafe {(&raw mut gTimer1s).as_mut()}, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:103:30 [INFO] [stdout] | [INFO] [stdout] 103 | let ida = match unsafe { &mut gTimerIdAlloc} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 103 | let ida = match unsafe { &raw mut gTimerIdAlloc} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:162:20 [INFO] [stdout] | [INFO] [stdout] 162 | match unsafe { &mut gTimerIdAlloc} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 162 | match unsafe { &raw mut gTimerIdAlloc} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:244:31 [INFO] [stdout] | [INFO] [stdout] 244 | let tMap = match unsafe { &mut gTimer10ms} { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 244 | let tMap = match unsafe { &raw mut gTimer10ms} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:252:31 [INFO] [stdout] | [INFO] [stdout] 252 | let tMap = match unsafe { &mut gTimer100ms} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 252 | let tMap = match unsafe { &raw mut gTimer100ms} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:260:31 [INFO] [stdout] | [INFO] [stdout] 260 | let tMap = match unsafe { &mut gTimer1s} { [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 260 | let tMap = match unsafe { &raw mut gTimer1s} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:291:30 [INFO] [stdout] | [INFO] [stdout] 291 | stats.total = match &gTimerIdAlloc { [INFO] [stdout] | ^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 291 | stats.total = match &raw const gTimerIdAlloc { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:296:40 [INFO] [stdout] | [INFO] [stdout] 296 | stats.timer_count_10ms = match &gTimer10ms { [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 296 | stats.timer_count_10ms = match &raw const gTimer10ms { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:301:41 [INFO] [stdout] | [INFO] [stdout] 301 | stats.timer_count_100ms = match &gTimer100ms { [INFO] [stdout] | ^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 301 | stats.timer_count_100ms = match &raw const gTimer100ms { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/rsm_timer.rs:305:38 [INFO] [stdout] | [INFO] [stdout] 305 | stats.timer_count_1s = match &gTimer1s { [INFO] [stdout] | ^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 305 | stats.timer_count_1s = match &raw const gTimer1s { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/os_timer.rs:74:34 [INFO] [stdout] | [INFO] [stdout] 74 | let tid = match unsafe { &mut gOsTimerAlloc} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 74 | let tid = match unsafe { &raw mut gOsTimerAlloc} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/os_timer.rs:119:12 [INFO] [stdout] | [INFO] [stdout] 119 | if gOsTimerAlloc.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/os_timer.rs:122:12 [INFO] [stdout] | [INFO] [stdout] 122 | if gOsTimerMap.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/os_timer.rs:129:28 [INFO] [stdout] | [INFO] [stdout] 129 | let tm = match unsafe {&mut gOsTimerMap} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 129 | let tm = match unsafe {&raw mut gOsTimerMap} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/os_timer.rs:136:28 [INFO] [stdout] | [INFO] [stdout] 136 | let tm = match unsafe {&mut gOsTimerMap} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 136 | let tm = match unsafe {&raw mut gOsTimerMap} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/socket/socketpool.rs:284:30 [INFO] [stdout] | [INFO] [stdout] 284 | let pool = match unsafe {&mut gSocketPool} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 284 | let pool = match unsafe {&raw mut gSocketPool} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/socket/socketpool.rs:293:30 [INFO] [stdout] | [INFO] [stdout] 293 | let pool = match unsafe {&mut gSocketPool} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 293 | let pool = match unsafe {&raw mut gSocketPool} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/socket/socketpool.rs:302:30 [INFO] [stdout] | [INFO] [stdout] 302 | let pool = match unsafe {&mut gSocketPool} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 302 | let pool = match unsafe {&raw mut gSocketPool} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/socket/socketpool.rs:331:30 [INFO] [stdout] | [INFO] [stdout] 331 | let pool = match unsafe {&mut gSocketPool} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 331 | let pool = match unsafe {&raw mut gSocketPool} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/socket/socketpool.rs:343:36 [INFO] [stdout] | [INFO] [stdout] 343 | let pool_inst = match unsafe { &mut gSocketPool} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 343 | let pool_inst = match unsafe { &raw mut gSocketPool} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/socket/socketpool.rs:428:29 [INFO] [stdout] | [INFO] [stdout] 428 | let pool = match unsafe{&mut gSocketPool} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 428 | let pool = match unsafe{&raw mut gSocketPool} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/rsm/xlog/mod.rs:178:2 [INFO] [stdout] | [INFO] [stdout] 178 | fp2.write(&vec_buf_out.as_slice()[0..comp_len]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 178 | let _ = fp2.write(&vec_buf_out.as_slice()[0..comp_len]); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/rsm/xlog/mod.rs:179:2 [INFO] [stdout] | [INFO] [stdout] 179 | fp2.flush(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 179 | let _ = fp2.flush(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:413:8 [INFO] [stdout] | [INFO] [stdout] 413 | if gLogServer.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:417:28 [INFO] [stdout] | [INFO] [stdout] 417 | let service=match unsafe {&mut gLogServer} { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 417 | let service=match unsafe {&raw mut gLogServer} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:436:28 [INFO] [stdout] | [INFO] [stdout] 436 | let service=match unsafe {&mut gLogServer} { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 436 | let service=match unsafe {&raw mut gLogServer} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:451:28 [INFO] [stdout] | [INFO] [stdout] 451 | let service=match unsafe {&mut gLogServer} { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 451 | let service=match unsafe {&raw mut gLogServer} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:463:28 [INFO] [stdout] | [INFO] [stdout] 463 | let service=match unsafe {&mut gLogServer} { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 463 | let service=match unsafe {&raw mut gLogServer} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:474:28 [INFO] [stdout] | [INFO] [stdout] 474 | let service=match unsafe {&mut gLogServer} { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 474 | let service=match unsafe {&raw mut gLogServer} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/xlog/xlog_server.rs:504:30 [INFO] [stdout] | [INFO] [stdout] 504 | let log_serv = match unsafe{&mut gLogServer} { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 504 | let log_serv = match unsafe{&raw mut gLogServer} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/oam/mod.rs:67:29 [INFO] [stdout] | [INFO] [stdout] 67 | let map = match unsafe {&mut gMapOpStr2Int} { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 67 | let map = match unsafe {&raw mut gMapOpStr2Int} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/oam/oam_main.rs:62:29 [INFO] [stdout] | [INFO] [stdout] 62 | let inst =match unsafe {&mut gOamInst} { [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 62 | let inst =match unsafe {&raw mut gOamInst} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/rsm/oam/oam_main.rs:166:12 [INFO] [stdout] | [INFO] [stdout] 166 | if gOamInst.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/oam/oam_main.rs:197:29 [INFO] [stdout] | [INFO] [stdout] 197 | let inst =match unsafe {&mut gOamInst} { [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 197 | let inst =match unsafe {&raw mut gOamInst} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/oam/oam_main.rs:208:29 [INFO] [stdout] | [INFO] [stdout] 208 | let inst =match unsafe {&mut gOamInst} { [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 208 | let inst =match unsafe {&raw mut gOamInst} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/rsm/oam/oam_main.rs:255:29 [INFO] [stdout] | [INFO] [stdout] 255 | let inst =match unsafe {&mut gOamInst} { [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 255 | let inst =match unsafe {&raw mut gOamInst} { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/net_ext/pktbuf.rs:48:18 [INFO] [stdout] | [INFO] [stdout] 48 | return & (*(self.buf_ptr as *const [u8;MAX_PKT_BUF_SIZE as usize]))[0..self.buf_len as usize] [INFO] [stdout] | ^^-------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const [u8; 2048]` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[u8; 2048]` [INFO] [stdout] --> src/net_ext/pktbuf.rs:48:18 [INFO] [stdout] | [INFO] [stdout] 48 | return & (*(self.buf_ptr as *const [u8;MAX_PKT_BUF_SIZE as usize]))[0..self.buf_len as usize] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 48 | return & (&(*(self.buf_ptr as *const [u8;MAX_PKT_BUF_SIZE as usize])))[0..self.buf_len as usize] [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/net_ext/pktbuf.rs:53:21 [INFO] [stdout] | [INFO] [stdout] 53 | return &mut (*(self.buf_ptr as *mut [u8;MAX_PKT_BUF_SIZE as usize]))[0..self.buf_len as usize] [INFO] [stdout] | ^^-----------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut [u8; 2048]` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&mut [u8; 2048]` [INFO] [stdout] --> src/net_ext/pktbuf.rs:53:21 [INFO] [stdout] | [INFO] [stdout] 53 | return &mut (*(self.buf_ptr as *mut [u8;MAX_PKT_BUF_SIZE as usize]))[0..self.buf_len as usize] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 53 | return &mut (&mut (*(self.buf_ptr as *mut [u8;MAX_PKT_BUF_SIZE as usize])))[0..self.buf_len as usize] [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/net_ext/pktbuf.rs:214:29 [INFO] [stdout] | [INFO] [stdout] 214 | match unsafe { &mut GlobalRecvPktBufs } { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 214 | match unsafe { &raw mut GlobalRecvPktBufs } { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/net_ext/pktbuf.rs:220:28 [INFO] [stdout] | [INFO] [stdout] 220 | match unsafe { &mut GlobalSendPktBufs } { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 220 | match unsafe { &raw mut GlobalSendPktBufs } { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/net_ext/fec.rs:300:14 [INFO] [stdout] | [INFO] [stdout] 300 | ... &(*(&self.hdr as *const fec_header_t as *const u8 as *const [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE]))[0..FEC_HDR_SIZE+self.real_len as usize] [INFO] [stdout] | ^^--------------------------------------------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const [u8; 2080]` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&[u8; 2080]` [INFO] [stdout] --> src/net_ext/fec.rs:300:14 [INFO] [stdout] | [INFO] [stdout] 300 | ... &(*(&self.hdr as *const fec_header_t as *const u8 as *const [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE]))[0..FEC_HDR_SIZE+self.real_len as u... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 300 | &(&(*(&self.hdr as *const fec_header_t as *const u8 as *const [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE])))[0..FEC_HDR_SIZE+self.real_len as usize] [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/net_ext/fec.rs:306:18 [INFO] [stdout] | [INFO] [stdout] 306 | ...ut (*(&mut self.hdr as *mut fec_header_t as *mut u8 as *mut [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE]))[0..FEC_HDR_SIZE+self.real_len as usize] [INFO] [stdout] | ^^------------------------------------------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut [u8; 2080]` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&mut [u8; 2080]` [INFO] [stdout] --> src/net_ext/fec.rs:306:18 [INFO] [stdout] | [INFO] [stdout] 306 | ... &mut (*(&mut self.hdr as *mut fec_header_t as *mut u8 as *mut [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE]))[0..FEC_HDR_SIZE+self.real_len as... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 306 | &mut (&mut (*(&mut self.hdr as *mut fec_header_t as *mut u8 as *mut [u8;MAX_FEC_BUF_SIZE+FEC_HDR_SIZE])))[0..FEC_HDR_SIZE+self.real_len as usize] [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: rust-rsm@0.3.2: src/net_ext/os_linux.c: In function 'c_create_timer': [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: "cc" "-m64" "/tmp/rustcM8gzbu/symbols.o" "<17 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "-los_linux" "/opt/rustwide/target/debug/deps/{librust_rsm-5c245e2f3d2539be,libsm4-91f4bcfe59e020a5,libaes-81d9c86fd4f0ba2b,libcipher-4cd91138691026dd,libinout-6bdd3f2eab7598c2,libsha2-f2a23776fdd9147a,libcpufeatures-e55e24c955b19b62,libdigest-29d6091ff36197de,libblock_buffer-c11f29a18f628bf9,libcrypto_common-21314922d88199ac,libgeneric_array-90533d40a81117b9,libtypenum-5a3978afe96d1757,libmio-b73dcf7d250c7de5,libtiny_http-46dc3e7f443f620f,liblog-2101d4ad7f3e719e,libchunked_transfer-87beebb9bd8ee84b,libascii-7bbb7b5b9198f5d5,liblibdeflater-3e8530d1edd658f3,liblibdeflate_sys-4de8742acf5de548,libserde_json-a31d609c3a51daa2,libryu-4a67195346dd0571,librand-2bdc365943332cf9,librand_chacha-312e1211c8de9e88,libppv_lite86-82a6539b342f8f6c,librand_core-b38530bd5413111e,libgetrandom-c75445fd9899a5ee,libcfg_if-238312195e79d92e,libtime-1bf2290c026760e3,libnum_threads-009b4476f8c45ce7,liblibc-edc69313365cdbbb,libitoa-330d9e8ad47582dd,libserde-1f0a8d9765583384}.rlib" "/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustcM8gzbu/raw-dylibs" "-B/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/target/debug/build/rust-rsm-4cca580e62e9b97d/out" "-L" "/opt/rustwide/target/debug/build/libdeflate-sys-ee72430cadb522fc/out/lib" "-L" "/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/rust_rsm-f9b955ec3fe6e944" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs" [INFO] [stdout] = note: some arguments are omitted. use `--verbose` to show all linker arguments [INFO] [stdout] = note: rust-lld: error: duplicate symbol: os_timer_callback [INFO] [stdout] >>> defined at os_timer.rs:44 (src/rsm/os_timer.rs:44) [INFO] [stdout] >>> /opt/rustwide/target/debug/deps/rust_rsm-f9b955ec3fe6e944.rust_rsm.2237577a274ec2ff-cgu.15.rcgu.o:(os_timer_callback) [INFO] [stdout] >>> defined at os_timer.rs:44 (src/rsm/os_timer.rs:44) [INFO] [stdout] >>> rust_rsm-5c245e2f3d2539be.rust_rsm.2e781f6be5be85b0-cgu.12.rcgu.o:(.text.os_timer_callback+0x0) in archive /opt/rustwide/target/debug/deps/librust_rsm-5c245e2f3d2539be.rlib [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: rust-rsm@0.3.2: src/net_ext/os_linux.c:175:31: warning: assignment to 'void (*)(__sigval_t)' {aka 'void (*)(union sigval)'} from incompatible pointer type 'timer_callback' {aka 'int (*)(sigval_t)'} [-Wincompatible-pointer-types] [INFO] [stderr] warning: rust-rsm@0.3.2: 175 | sev.sigev_notify_function = call_back; [INFO] [stderr] warning: rust-rsm@0.3.2: | ^ [INFO] [stderr] error: could not compile `rust-rsm` (bin "rust-rsm") due to 1 previous error; 98 warnings emitted [INFO] running `Command { std: "docker" "inspect" "e28e571206642b734a2747076160ba3f506a06007895a60b46b06dc91946a7fa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e28e571206642b734a2747076160ba3f506a06007895a60b46b06dc91946a7fa", kill_on_drop: false }` [INFO] [stdout] e28e571206642b734a2747076160ba3f506a06007895a60b46b06dc91946a7fa