mirror of https://github.com/rust-lang/rust
30 lines
464 B
Rust
30 lines
464 B
Rust
// Verify that unreachable code undergoes unsafety checks.
|
|
|
|
fn main() {
|
|
return;
|
|
*(1 as *mut u32) = 42;
|
|
//~^ ERROR dereference of raw pointer is unsafe
|
|
}
|
|
|
|
fn panic() -> ! {
|
|
panic!();
|
|
}
|
|
|
|
fn f(a: *mut u32) {
|
|
panic();
|
|
*a = 1;
|
|
//~^ ERROR dereference of raw pointer is unsafe
|
|
}
|
|
|
|
enum Void {}
|
|
|
|
fn uninhabited() -> Void {
|
|
panic!();
|
|
}
|
|
|
|
fn g(b: *mut u32) {
|
|
uninhabited();
|
|
*b = 1;
|
|
//~^ ERROR dereference of raw pointer is unsafe
|
|
}
|