]> git.lizzy.rs Git - rust.git/blob - tests/ui/invalid_ref.rs
Auto merge of #4314 - chansuke:add-negation-to-is_empty, r=flip1995
[rust.git] / tests / ui / invalid_ref.rs
1 #![allow(deprecated, unused)]
2 #![feature(core_intrinsics)]
3
4 extern crate core;
5 use std::intrinsics::init;
6
7 fn main() {
8     let x = 1;
9     unsafe {
10         ref_to_zeroed_std(&x);
11         ref_to_zeroed_core(&x);
12         ref_to_zeroed_intr(&x);
13         ref_to_uninit_std(&x);
14         ref_to_uninit_core(&x);
15         some_ref();
16         std_zeroed_no_ref();
17         core_zeroed_no_ref();
18         intr_init_no_ref();
19     }
20 }
21
22 unsafe fn ref_to_zeroed_std<T: ?Sized>(t: &T) {
23     let ref_zero: &T = std::mem::zeroed(); // warning
24 }
25
26 unsafe fn ref_to_zeroed_core<T: ?Sized>(t: &T) {
27     let ref_zero: &T = core::mem::zeroed(); // warning
28 }
29
30 unsafe fn ref_to_zeroed_intr<T: ?Sized>(t: &T) {
31     let ref_zero: &T = std::intrinsics::init(); // warning
32 }
33
34 unsafe fn ref_to_uninit_std<T: ?Sized>(t: &T) {
35     let ref_uninit: &T = std::mem::uninitialized(); // warning
36 }
37
38 unsafe fn ref_to_uninit_core<T: ?Sized>(t: &T) {
39     let ref_uninit: &T = core::mem::uninitialized(); // warning
40 }
41
42 fn some_ref() {
43     let some_ref = &1;
44 }
45
46 unsafe fn std_zeroed_no_ref() {
47     let mem_zero: usize = std::mem::zeroed(); // no warning
48 }
49
50 unsafe fn core_zeroed_no_ref() {
51     let mem_zero: usize = core::mem::zeroed(); // no warning
52 }
53
54 unsafe fn intr_init_no_ref() {
55     let mem_zero: usize = std::intrinsics::init(); // no warning
56 }