1 // Copyright 2018 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
11 #[derive(Copy, Clone)]
14 // Tests that we detect unsafe places (specifically, union fields and
15 // raw pointer dereferences), even when they're matched on while having
16 // an uninhabited type (equivalent to `std::intrinsics::unreachable()`).
19 union Union { unit: (), void: Void }
20 let u = Union { unit: () };
22 //~^ ERROR access to union field is unsafe
26 let ptr = std::ptr::null::<Void>();
28 //~^ ERROR dereference of raw pointer is unsafe