Check for raw pointer dereference in THIR unsafeck
This commit is contained in:
parent
f94942d842
commit
27fe959c2c
22 changed files with 113 additions and 10 deletions
|
|
@ -1,5 +1,5 @@
|
|||
error[E0133]: access to union field is unsafe and requires unsafe function or block
|
||||
--> $DIR/issue-47412.rs:11:11
|
||||
--> $DIR/issue-47412.rs:14:11
|
||||
|
|
||||
LL | match u.void {}
|
||||
| ^^^^^^ access to union field
|
||||
|
|
@ -7,7 +7,7 @@ LL | match u.void {}
|
|||
= note: the field may not be properly initialized: using uninitialized data will cause undefined behavior
|
||||
|
||||
error[E0133]: dereference of raw pointer is unsafe and requires unsafe function or block
|
||||
--> $DIR/issue-47412.rs:17:11
|
||||
--> $DIR/issue-47412.rs:21:11
|
||||
|
|
||||
LL | match *ptr {}
|
||||
| ^^^^ dereference of raw pointer
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
// revisions: mir thir
|
||||
// [thir]compile-flags: -Z thir-unsafeck
|
||||
|
||||
#[derive(Copy, Clone)]
|
||||
enum Void {}
|
||||
|
||||
|
|
@ -9,7 +12,8 @@ fn union_field() {
|
|||
union Union { unit: (), void: Void }
|
||||
let u = Union { unit: () };
|
||||
match u.void {}
|
||||
//~^ ERROR access to union field is unsafe
|
||||
//[mir]~^ ERROR access to union field is unsafe
|
||||
// FIXME(thir-unsafeck): AccessToUnionField unimplemented
|
||||
}
|
||||
|
||||
fn raw_ptr_deref() {
|
||||
|
|
|
|||
11
src/test/ui/issues/issue-47412.thir.stderr
Normal file
11
src/test/ui/issues/issue-47412.thir.stderr
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
error[E0133]: dereference of raw pointer is unsafe and requires unsafe function or block
|
||||
--> $DIR/issue-47412.rs:21:11
|
||||
|
|
||||
LL | match *ptr {}
|
||||
| ^^^^ dereference of raw pointer
|
||||
|
|
||||
= note: raw pointers may be NULL, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0133`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue