From 4fd0dc10500bd0080a73d4b971865bc81ee74fcc Mon Sep 17 00:00:00 2001 From: Folkert de Vries Date: Sun, 16 Nov 2025 13:13:18 +0100 Subject: [PATCH 1/2] move `NonNull` into `minicore` --- tests/auxiliary/minicore.rs | 18 ++++++++++++++++++ tests/ui/abi/compatibility.rs | 18 ------------------ .../cmse-nonsecure-entry/c-variadic.rs | 3 +-- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/tests/auxiliary/minicore.rs b/tests/auxiliary/minicore.rs index a974dee8a8389..288a5b50dd5ef 100644 --- a/tests/auxiliary/minicore.rs +++ b/tests/auxiliary/minicore.rs @@ -119,6 +119,24 @@ pub struct ManuallyDrop { } impl Copy for ManuallyDrop {} +#[repr(transparent)] +#[rustc_layout_scalar_valid_range_start(1)] +#[rustc_nonnull_optimization_guaranteed] +pub struct NonNull { + pointer: *const T, +} +impl Copy for NonNull {} + +#[repr(transparent)] +#[rustc_layout_scalar_valid_range_start(1)] +#[rustc_nonnull_optimization_guaranteed] +pub struct NonZero(T); + +pub struct Unique { + pub pointer: NonNull, + pub _marker: PhantomData, +} + #[lang = "unsafe_cell"] #[repr(transparent)] pub struct UnsafeCell { diff --git a/tests/ui/abi/compatibility.rs b/tests/ui/abi/compatibility.rs index 350b98191cf57..1bd032e877a83 100644 --- a/tests/ui/abi/compatibility.rs +++ b/tests/ui/abi/compatibility.rs @@ -87,19 +87,6 @@ mod prelude { fn clone(&self) -> Self; } - #[repr(transparent)] - #[rustc_layout_scalar_valid_range_start(1)] - #[rustc_nonnull_optimization_guaranteed] - pub struct NonNull { - pointer: *const T, - } - impl Copy for NonNull {} - - #[repr(transparent)] - #[rustc_layout_scalar_valid_range_start(1)] - #[rustc_nonnull_optimization_guaranteed] - pub struct NonZero(T); - // This just stands in for a non-trivial type. pub struct Vec { ptr: NonNull, @@ -107,11 +94,6 @@ mod prelude { len: usize, } - pub struct Unique { - pub pointer: NonNull, - pub _marker: PhantomData, - } - #[lang = "global_alloc_ty"] pub struct Global; diff --git a/tests/ui/cmse-nonsecure/cmse-nonsecure-entry/c-variadic.rs b/tests/ui/cmse-nonsecure/cmse-nonsecure-entry/c-variadic.rs index d921f5cff627f..d4a6c1fa07c14 100644 --- a/tests/ui/cmse-nonsecure/cmse-nonsecure-entry/c-variadic.rs +++ b/tests/ui/cmse-nonsecure/cmse-nonsecure-entry/c-variadic.rs @@ -31,9 +31,8 @@ async unsafe extern "cmse-nonsecure-entry" fn async_is_not_allowed() { // this file, but they may be moved into `minicore` if/when other `#[no_core]` tests want to use // them. -// NOTE: in `core` this type uses `NonNull`. #[lang = "ResumeTy"] -pub struct ResumeTy(*mut Context<'static>); +pub struct ResumeTy(NonNull>); #[lang = "future_trait"] pub trait Future { From 96c64272e2a913d41232ed69c652bdb47433a15c Mon Sep 17 00:00:00 2001 From: Folkert de Vries Date: Sun, 16 Nov 2025 13:13:59 +0100 Subject: [PATCH 2/2] `abi/compatibility`: test some additional targets --- tests/ui/abi/compatibility.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/ui/abi/compatibility.rs b/tests/ui/abi/compatibility.rs index 1bd032e877a83..ce662d3fe28b0 100644 --- a/tests/ui/abi/compatibility.rs +++ b/tests/ui/abi/compatibility.rs @@ -13,6 +13,9 @@ //@ revisions: arm //@[arm] compile-flags: --target arm-unknown-linux-gnueabi //@[arm] needs-llvm-components: arm +//@ revisions: thumb +//@[thumb] compile-flags: --target thumbv8m.main-none-eabi +//@[thumb] needs-llvm-components: arm //@ revisions: aarch64 //@[aarch64] compile-flags: --target aarch64-unknown-linux-gnu //@[aarch64] needs-llvm-components: aarch64 @@ -31,12 +34,21 @@ //@ revisions: sparc64 //@[sparc64] compile-flags: --target sparc64-unknown-linux-gnu //@[sparc64] needs-llvm-components: sparc +//@ revisions: powerpc +//@[powerpc] compile-flags: --target powerpc-unknown-linux-gnu +//@[powerpc] needs-llvm-components: powerpc //@ revisions: powerpc64 //@[powerpc64] compile-flags: --target powerpc64-unknown-linux-gnu //@[powerpc64] needs-llvm-components: powerpc +//@ revisions: aix +//@[aix] compile-flags: --target powerpc64-ibm-aix +//@[aix] needs-llvm-components: powerpc //@ revisions: riscv //@[riscv] compile-flags: --target riscv64gc-unknown-linux-gnu //@[riscv] needs-llvm-components: riscv +//@ revisions: loongarch32 +//@[loongarch32] compile-flags: --target loongarch32-unknown-none +//@[loongarch32] needs-llvm-components: loongarch //@ revisions: loongarch64 //@[loongarch64] compile-flags: --target loongarch64-unknown-linux-gnu //@[loongarch64] needs-llvm-components: loongarch