diff options
| author | bors <bors@rust-lang.org> | 2019-06-10 11:15:07 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2019-06-10 11:15:07 +0000 |
| commit | a73ecb3d9c432f8f53117b1a6b6c209dc802dee7 (patch) | |
| tree | 1494437aa9bf2fb654e8fe5903e1a6a44a454e6e /src/libcore | |
| parent | 1cbd8a4d686d1411105f26cddf876c5994e69593 (diff) | |
| parent | f90d34874ee83430f8897ce8a04407580dbcdf4d (diff) | |
| download | rust-a73ecb3d9c432f8f53117b1a6b6c209dc802dee7.tar.gz rust-a73ecb3d9c432f8f53117b1a6b6c209dc802dee7.zip | |
Auto merge of #61716 - Centril:rollup-nxwf5ol, r=Centril
Rollup of 5 pull requests Successful merges: - #59600 (Replaced linear token counting macros with optimized implementation) - #61501 (get rid of real_intrinsics module) - #61570 (Fix issues with const argument inference) - #61683 (Haiku: the maximum stack size is 16 MB) - #61697 (submodules: update clippy from 71be6f62 to c0dbd34b) Failed merges: r? @ghost
Diffstat (limited to 'src/libcore')
| -rw-r--r-- | src/libcore/intrinsics.rs | 43 |
1 files changed, 16 insertions, 27 deletions
diff --git a/src/libcore/intrinsics.rs b/src/libcore/intrinsics.rs index b609af16ffe..8d9a51742fd 100644 --- a/src/libcore/intrinsics.rs +++ b/src/libcore/intrinsics.rs @@ -1326,30 +1326,10 @@ extern "rust-intrinsic" { pub fn nontemporal_store<T>(ptr: *mut T, val: T); } -mod real_intrinsics { - extern "rust-intrinsic" { - /// Copies `count * size_of::<T>()` bytes from `src` to `dst`. The source - /// and destination must *not* overlap. - /// For the full docs, see the stabilized wrapper [`copy_nonoverlapping`]. - /// - /// [`copy_nonoverlapping`]: ../../std/ptr/fn.copy_nonoverlapping.html - pub fn copy_nonoverlapping<T>(src: *const T, dst: *mut T, count: usize); - - /// Copies `count * size_of::<T>()` bytes from `src` to `dst`. The source - /// and destination may overlap. - /// For the full docs, see the stabilized wrapper [`copy`]. - /// - /// [`copy`]: ../../std/ptr/fn.copy.html - pub fn copy<T>(src: *const T, dst: *mut T, count: usize); - - /// Sets `count * size_of::<T>()` bytes of memory starting at `dst` to - /// `val`. - /// For the full docs, see the stabilized wrapper [`write_bytes`]. - /// - /// [`write_bytes`]: ../../std/ptr/fn.write_bytes.html - pub fn write_bytes<T>(dst: *mut T, val: u8, count: usize); - } -} +// Some functions are defined here because they accidentally got made +// available in this module on stable. See <https://github.com/rust-lang/rust/issues/15702>. +// (`transmute` also falls into this category, but it cannot be wrapped due to the +// check that `T` and `U` have the same size.) /// Copies `count * size_of::<T>()` bytes from `src` to `dst`. The source /// and destination must *not* overlap. @@ -1437,7 +1417,10 @@ mod real_intrinsics { #[stable(feature = "rust1", since = "1.0.0")] #[inline] pub unsafe fn copy_nonoverlapping<T>(src: *const T, dst: *mut T, count: usize) { - real_intrinsics::copy_nonoverlapping(src, dst, count); + extern "rust-intrinsic" { + fn copy_nonoverlapping<T>(src: *const T, dst: *mut T, count: usize); + } + copy_nonoverlapping(src, dst, count); } /// Copies `count * size_of::<T>()` bytes from `src` to `dst`. The source @@ -1494,7 +1477,10 @@ pub unsafe fn copy_nonoverlapping<T>(src: *const T, dst: *mut T, count: usize) { #[stable(feature = "rust1", since = "1.0.0")] #[inline] pub unsafe fn copy<T>(src: *const T, dst: *mut T, count: usize) { - real_intrinsics::copy(src, dst, count) + extern "rust-intrinsic" { + fn copy<T>(src: *const T, dst: *mut T, count: usize); + } + copy(src, dst, count) } /// Sets `count * size_of::<T>()` bytes of memory starting at `dst` to @@ -1572,7 +1558,10 @@ pub unsafe fn copy<T>(src: *const T, dst: *mut T, count: usize) { #[stable(feature = "rust1", since = "1.0.0")] #[inline] pub unsafe fn write_bytes<T>(dst: *mut T, val: u8, count: usize) { - real_intrinsics::write_bytes(dst, val, count) + extern "rust-intrinsic" { + fn write_bytes<T>(dst: *mut T, val: u8, count: usize); + } + write_bytes(dst, val, count) } // Simple bootstrap implementations of minnum/maxnum for stage0 compilation. |
