27 lines
524 B
Rust
27 lines
524 B
Rust
|
//ignore-windows: Uses POSIX APIs
|
||
|
|
||
|
#![feature(rustc_private)]
|
||
|
|
||
|
use core::slice;
|
||
|
|
||
|
extern crate libc;
|
||
|
|
||
|
fn main() {
|
||
|
unsafe {
|
||
|
let p1 = libc::calloc(0, 0);
|
||
|
assert!(p1.is_null());
|
||
|
|
||
|
let p2 = libc::calloc(20, 0);
|
||
|
assert!(p2.is_null());
|
||
|
|
||
|
let p3 = libc::calloc(0, 20);
|
||
|
assert!(p3.is_null());
|
||
|
|
||
|
let p4 = libc::calloc(4, 8) as *const u8;
|
||
|
assert!(!p4.is_null());
|
||
|
|
||
|
let slice = slice::from_raw_parts(p4, 4 * 8);
|
||
|
assert_eq!(&slice, &[0_u8; 4 * 8]);
|
||
|
}
|
||
|
}
|