From c91d0f94a9849651578e21774d4acf3ff5c24a32 Mon Sep 17 00:00:00 2001 From: Alex Martens Date: Wed, 10 Jan 2024 21:40:32 -0800 Subject: [PATCH] Fix nightly CI failures --- .github/workflows/rt-ci.yml | 2 ++ cortex-m-rt/examples/alignment.rs | 12 ++++++------ cortex-m-rt/examples/data_overflow.rs | 4 ++-- cortex-m-rt/src/lib.rs | 2 +- panic-itm/src/lib.rs | 1 + 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/.github/workflows/rt-ci.yml b/.github/workflows/rt-ci.yml index 318c23a4..55d3c45c 100644 --- a/.github/workflows/rt-ci.yml +++ b/.github/workflows/rt-ci.yml @@ -64,6 +64,8 @@ jobs: - uses: dtolnay/rust-toolchain@stable - name: Install all Rust targets run: rustup target install thumbv6m-none-eabi thumbv7m-none-eabi thumbv7em-none-eabi thumbv7em-none-eabihf thumbv8m.base-none-eabi thumbv8m.main-none-eabi thumbv8m.main-none-eabihf + - name: Remove examples that pass by failing + run: rm examples/data_overflow.rs - name: Build examples for thumbv6m-none-eabi run: cargo build --target=thumbv6m-none-eabi --features cortex-m/critical-section-single-core --examples - name: Build examples for thumbv7m-none-eabi diff --git a/cortex-m-rt/examples/alignment.rs b/cortex-m-rt/examples/alignment.rs index 4421e690..98142635 100644 --- a/cortex-m-rt/examples/alignment.rs +++ b/cortex-m-rt/examples/alignment.rs @@ -21,12 +21,12 @@ static RODATA2: &[u8; 2] = b"34"; #[entry] fn main() -> ! { unsafe { - let _bss1 = ptr::read_volatile(&BSS1); - let _bss2 = ptr::read_volatile(&BSS2); - let _data1 = ptr::read_volatile(&DATA1); - let _data2 = ptr::read_volatile(&DATA2); - let _rodata1 = ptr::read_volatile(&RODATA1); - let _rodata2 = ptr::read_volatile(&RODATA2); + let _bss1 = ptr::read_volatile(ptr::addr_of!(BSS1)); + let _bss2 = ptr::read_volatile(ptr::addr_of!(BSS2)); + let _data1 = ptr::read_volatile(ptr::addr_of!(DATA1)); + let _data2 = ptr::read_volatile(ptr::addr_of!(DATA2)); + let _rodata1 = ptr::read_volatile(ptr::addr_of!(RODATA1)); + let _rodata2 = ptr::read_volatile(ptr::addr_of!(RODATA2)); } loop {} diff --git a/cortex-m-rt/examples/data_overflow.rs b/cortex-m-rt/examples/data_overflow.rs index a84ec122..f18d220e 100644 --- a/cortex-m-rt/examples/data_overflow.rs +++ b/cortex-m-rt/examples/data_overflow.rs @@ -22,8 +22,8 @@ static mut DATA: [u8; 16 * 1024] = [1u8; 16 * 1024]; #[entry] fn main() -> ! { unsafe { - let _bigdata = ptr::read_volatile(&RODATA as *const u8); - let _bigdata = ptr::read_volatile(&DATA as *const u8); + let _bigdata = ptr::read_volatile(ptr::addr_of!(RODATA)); + let _bigdata = ptr::read_volatile(ptr::addr_of!(DATA)); } loop {} diff --git a/cortex-m-rt/src/lib.rs b/cortex-m-rt/src/lib.rs index 27bb1bdc..3ab4297c 100644 --- a/cortex-m-rt/src/lib.rs +++ b/cortex-m-rt/src/lib.rs @@ -1038,7 +1038,7 @@ pub fn heap_start() -> *mut u32 { static mut __sheap: u32; } - unsafe { &mut __sheap } + unsafe { core::ptr::addr_of_mut!(__sheap) } } // Entry point is Reset. diff --git a/panic-itm/src/lib.rs b/panic-itm/src/lib.rs index 5d969b00..b11880ad 100644 --- a/panic-itm/src/lib.rs +++ b/panic-itm/src/lib.rs @@ -43,6 +43,7 @@ use cortex_m::iprintln; use cortex_m::peripheral::ITM; #[panic_handler] +#[cfg(all(not(test), not(doctest)))] fn panic(info: &PanicInfo) -> ! { interrupt::disable();