Forbid casting to/from a pointer of unknown kind
This commit is contained in:
parent
74be072068
commit
99ada043b6
4 changed files with 111 additions and 23 deletions
19
src/test/ui/issue-45730.rs
Normal file
19
src/test/ui/issue-45730.rs
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
use std::fmt;
|
||||
fn main() {
|
||||
let x: *const _ = 0 as _;
|
||||
|
||||
let x: *const _ = 0 as *const _;
|
||||
let y: Option<*const fmt::Debug> = Some(x) as _;
|
||||
|
||||
let x = 0 as *const i32 as *const _ as *mut _;
|
||||
}
|
||||
32
src/test/ui/issue-45730.stderr
Normal file
32
src/test/ui/issue-45730.stderr
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
error[E0641]: cannot cast to a pointer of an unknown kind
|
||||
--> $DIR/issue-45730.rs:13:23
|
||||
|
|
||||
13 | let x: *const _ = 0 as _;
|
||||
| ^^^^^-
|
||||
| |
|
||||
| help: consider giving more type information
|
||||
|
|
||||
= note: The type information given here is insufficient to check whether the pointer cast is valid
|
||||
|
||||
error[E0641]: cannot cast to a pointer of an unknown kind
|
||||
--> $DIR/issue-45730.rs:15:23
|
||||
|
|
||||
15 | let x: *const _ = 0 as *const _;
|
||||
| ^^^^^--------
|
||||
| |
|
||||
| help: consider giving more type information
|
||||
|
|
||||
= note: The type information given here is insufficient to check whether the pointer cast is valid
|
||||
|
||||
error[E0641]: cannot cast to a pointer of an unknown kind
|
||||
--> $DIR/issue-45730.rs:18:13
|
||||
|
|
||||
18 | let x = 0 as *const i32 as *const _ as *mut _;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------
|
||||
| |
|
||||
| help: consider giving more type information
|
||||
|
|
||||
= note: The type information given here is insufficient to check whether the pointer cast is valid
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue