diff options
| author | Ralf Jung <post@ralfj.de> | 2025-06-07 14:14:09 +0200 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2025-06-07 21:45:58 +0200 |
| commit | 52824052d7782762056aec11179e08ed015c0dd3 (patch) | |
| tree | 692b0623463bf13fad0887a4428b16541967a01c | |
| parent | 2a3a6150d4078d2ae23c6e6af3dbfaea56bd56c6 (diff) | |
| download | rust-52824052d7782762056aec11179e08ed015c0dd3.tar.gz rust-52824052d7782762056aec11179e08ed015c0dd3.zip | |
cci_inrinsic tets: do not use atomic intrinsic
| -rw-r--r-- | tests/ui/intrinsics/auxiliary/cci_intrinsic.rs | 22 | ||||
| -rw-r--r-- | tests/ui/intrinsics/intrinsic-atomics-cc.rs | 12 | ||||
| -rw-r--r-- | tests/ui/intrinsics/intrinsic-inline-cc.rs | 9 |
3 files changed, 14 insertions, 29 deletions
diff --git a/tests/ui/intrinsics/auxiliary/cci_intrinsic.rs b/tests/ui/intrinsics/auxiliary/cci_intrinsic.rs index ab4604b77b3..95fc673f434 100644 --- a/tests/ui/intrinsics/auxiliary/cci_intrinsic.rs +++ b/tests/ui/intrinsics/auxiliary/cci_intrinsic.rs @@ -1,24 +1,12 @@ #![feature(intrinsics, adt_const_params)] -pub mod rusti { - use std::marker::ConstParamTy; - - #[derive(Debug, ConstParamTy, PartialEq, Eq)] - pub enum AtomicOrdering { - // These values must match the compiler's `AtomicOrdering` defined in - // `rustc_middle/src/ty/consts/int.rs`! - Relaxed = 0, - Release = 1, - Acquire = 2, - AcqRel = 3, - SeqCst = 4, - } - +mod rusti { #[rustc_intrinsic] - pub unsafe fn atomic_xchg<T, const ORD: AtomicOrdering>(dst: *mut T, src: T) -> T; + pub unsafe fn size_of_val<T: ?Sized>(ptr: *const T) -> usize; } +// A monomorphic function, inlined cross-crate, referencing an intrinsic. #[inline(always)] -pub fn atomic_xchg_seqcst(dst: *mut isize, src: isize) -> isize { - unsafe { rusti::atomic_xchg::<_, { rusti::AtomicOrdering::SeqCst }>(dst, src) } +pub fn size_of_val(val: &[u8]) -> usize { + unsafe { rusti::size_of_val(val) } } diff --git a/tests/ui/intrinsics/intrinsic-atomics-cc.rs b/tests/ui/intrinsics/intrinsic-atomics-cc.rs deleted file mode 100644 index 612a21a47cf..00000000000 --- a/tests/ui/intrinsics/intrinsic-atomics-cc.rs +++ /dev/null @@ -1,12 +0,0 @@ -//@ run-pass -//@ aux-build:cci_intrinsic.rs - - -extern crate cci_intrinsic; -use cci_intrinsic::atomic_xchg_seqcst; - -pub fn main() { - let mut x = 1; - atomic_xchg_seqcst(&mut x, 5); - assert_eq!(x, 5); -} diff --git a/tests/ui/intrinsics/intrinsic-inline-cc.rs b/tests/ui/intrinsics/intrinsic-inline-cc.rs new file mode 100644 index 00000000000..f2b961a760b --- /dev/null +++ b/tests/ui/intrinsics/intrinsic-inline-cc.rs @@ -0,0 +1,9 @@ +//@ run-pass +//@ aux-build:cci_intrinsic.rs + +extern crate cci_intrinsic; + +pub fn main() { + let val = cci_intrinsic::size_of_val(&[1u8, 2, 3]); + assert_eq!(val, 3); +} |
