]> git.proxmox.com Git - rustc.git/blob - src/tools/clippy/tests/ui/invalid_ref.rs
New upstream version 1.23.0+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / invalid_ref.rs
1
2
3
4 #![allow(unused)]
5 #![feature(core_intrinsics)]
6
7 extern crate core;
8 use std::intrinsics::{init, uninit};
9
10 fn main() {
11 let x = 1;
12 unsafe {
13 ref_to_zeroed_std(&x);
14 ref_to_zeroed_core(&x);
15 ref_to_zeroed_intr(&x);
16 ref_to_uninit_std(&x);
17 ref_to_uninit_core(&x);
18 ref_to_uninit_intr(&x);
19 some_ref();
20 std_zeroed_no_ref();
21 core_zeroed_no_ref();
22 intr_init_no_ref();
23 }
24 }
25
26 unsafe fn ref_to_zeroed_std<T: ?Sized>(t: &T) {
27 let ref_zero: &T = std::mem::zeroed(); // warning
28 }
29
30 unsafe fn ref_to_zeroed_core<T: ?Sized>(t: &T) {
31 let ref_zero: &T = core::mem::zeroed(); // warning
32 }
33
34 unsafe fn ref_to_zeroed_intr<T: ?Sized>(t: &T) {
35 let ref_zero: &T = std::intrinsics::init(); // warning
36 }
37
38 unsafe fn ref_to_uninit_std<T: ?Sized>(t: &T) {
39 let ref_uninit: &T = std::mem::uninitialized(); // warning
40 }
41
42 unsafe fn ref_to_uninit_core<T: ?Sized>(t: &T) {
43 let ref_uninit: &T = core::mem::uninitialized(); // warning
44 }
45
46 unsafe fn ref_to_uninit_intr<T: ?Sized>(t: &T) {
47 let ref_uninit: &T = std::intrinsics::uninit(); // warning
48 }
49
50 fn some_ref() {
51 let some_ref = &1;
52 }
53
54 unsafe fn std_zeroed_no_ref() {
55 let mem_zero: usize = std::mem::zeroed(); // no warning
56 }
57
58 unsafe fn core_zeroed_no_ref() {
59 let mem_zero: usize = core::mem::zeroed(); // no warning
60 }
61
62 unsafe fn intr_init_no_ref() {
63 let mem_zero: usize = std::intrinsics::init(); // no warning
64 }
65
66