rust-embedded / heapless

Heapless, `static` friendly data structures
Apache License 2.0
1.52k stars 181 forks source link

spsc: creating a mutable reference to mutable static is discouraged (this will be a hard error in the 2024 edition) #464

Closed owenthewizard closed 4 months ago

owenthewizard commented 6 months ago

From the spsc example:

warning: creating a mutable reference to mutable static is discouraged
 --> src/main.rs:8:18
  |
8 |         unsafe { &mut Q }
  |                  ^^^^^^ mutable reference to mutable static
  |
  = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
  = note: this will be a hard error in the 2024 edition
  = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
  = note: `#[warn(static_mut_refs)]` on by default
help: use `addr_of_mut!` instead to create a raw pointer
  |
8 |         unsafe { addr_of_mut!(Q) }
  |                  ~~~~~~~~~~~~~~~
qwerty19106 commented 6 months ago

We should probably use static_cell instead of static mut.