Skip to content

Commit

Permalink
Fix warnings about taking the address of a static
Browse files Browse the repository at this point in the history
```
warning: creating a mutable reference to mutable static is discouraged
  --> src/main.rs:40:29
   |
40 |     unsafe { ALLOCATOR.init(&mut HEAP as *const u8 as usize, core::mem::size_of_val(&HEAP)) };
   |                             ^^^^^^^^^ mutable reference to mutable static
   |
   = note: for more information, see issue #114447 <rust-lang/rust#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
   |
40 |     unsafe { ALLOCATOR.init(addr_of_mut!(HEAP) as *const u8 as usize, core::mem::size_of_val(&HEAP)) };
   |                             ~~~~~~~~~~~~~    +
```
  • Loading branch information
ogoffart committed Sep 16, 2024
1 parent 7b5ab48 commit 4e34269
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ fn main() -> ! {
static mut HEAP: [u8; HEAP_SIZE] = [0; HEAP_SIZE];
#[global_allocator]
static ALLOCATOR: embedded_alloc::Heap = embedded_alloc::Heap::empty();
unsafe { ALLOCATOR.init(&mut HEAP as *const u8 as usize, core::mem::size_of_val(&HEAP)) };
unsafe { ALLOCATOR.init(core::ptr::addr_of_mut!(HEAP) as usize, HEAP_SIZE) }

// -------- Setup peripherials --------
let mut pac = pac::Peripherals::take().unwrap();
Expand Down

0 comments on commit 4e34269

Please sign in to comment.