fix compile-fail tests to avoid libstd debug assertions
This commit is contained in:
parent
6ff5b3fcf9
commit
8acf52b3ca
@ -1,8 +1,14 @@
|
||||
//error-pattern: invalid use of NULL pointer
|
||||
#![feature(intrinsics)]
|
||||
|
||||
// Directly call intrinsic to avoid debug assertions in libstd
|
||||
extern "rust-intrinsic" {
|
||||
fn copy_nonoverlapping<T>(src: *const T, dst: *mut T, count: usize);
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let mut data = [0u16; 4];
|
||||
let ptr = &mut data[0] as *mut u16;
|
||||
// Even copying 0 elements from NULL should error.
|
||||
unsafe { ptr.copy_from(std::ptr::null(), 0); }
|
||||
unsafe { copy_nonoverlapping(std::ptr::null(), ptr, 0); }
|
||||
}
|
||||
|
@ -1,12 +1,16 @@
|
||||
#![feature(core_intrinsics)]
|
||||
|
||||
//error-pattern: copy_nonoverlapping called on overlapping ranges
|
||||
#![feature(intrinsics)]
|
||||
|
||||
// Directly call intrinsic to avoid debug assertions in libstd
|
||||
extern "rust-intrinsic" {
|
||||
fn copy_nonoverlapping<T>(src: *const T, dst: *mut T, count: usize);
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let mut data = [0u8; 16];
|
||||
unsafe {
|
||||
let a = data.as_mut_ptr();
|
||||
let b = a.wrapping_offset(1) as *mut _;
|
||||
std::ptr::copy_nonoverlapping(a, b, 2);
|
||||
copy_nonoverlapping(a, b, 2);
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,14 @@
|
||||
//error-pattern: tried to access memory with alignment 1, but alignment 2 is required
|
||||
#![feature(intrinsics)]
|
||||
|
||||
// Directly call intrinsic to avoid debug assertions in libstd
|
||||
extern "rust-intrinsic" {
|
||||
fn copy_nonoverlapping<T>(src: *const T, dst: *mut T, count: usize);
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let mut data = [0u16; 8];
|
||||
let ptr = (&mut data[0] as *mut u16 as *mut u8).wrapping_add(1) as *mut u16;
|
||||
// Even copying 0 elements to something unaligned should error
|
||||
unsafe { ptr.copy_from(&data[5], 0); }
|
||||
unsafe { copy_nonoverlapping(&data[5], ptr, 0); }
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user