]> git.lizzy.rs Git - rust.git/blob - tests/ui/transmuting_null.rs
iterate List by value
[rust.git] / tests / ui / transmuting_null.rs
1 #![allow(dead_code)]
2 #![warn(clippy::transmuting_null)]
3 #![allow(clippy::zero_ptr)]
4 #![allow(clippy::transmute_ptr_to_ref)]
5 #![allow(clippy::eq_op)]
6
7 // Easy to lint because these only span one line.
8 fn one_liners() {
9     unsafe {
10         let _: &u64 = std::mem::transmute(0 as *const u64);
11         let _: &u64 = std::mem::transmute(std::ptr::null::<u64>());
12     }
13 }
14
15 pub const ZPTR: *const usize = 0 as *const _;
16 pub const NOT_ZPTR: *const usize = 1 as *const _;
17
18 fn transmute_const() {
19     unsafe {
20         // Should raise a lint.
21         let _: &u64 = std::mem::transmute(ZPTR);
22         // Should NOT raise a lint.
23         let _: &u64 = std::mem::transmute(NOT_ZPTR);
24     }
25 }
26
27 fn main() {
28     one_liners();
29     transmute_const();
30 }