diff options
| author | Jacob Pratt <jacob@jhpratt.dev> | 2021-10-05 04:55:57 -0400 |
|---|---|---|
| committer | Jacob Pratt <jacob@jhpratt.dev> | 2021-11-06 17:05:15 -0400 |
| commit | 0cdbeaa2a3a2d17ed20122dc310f198e58402aa2 (patch) | |
| tree | 76166b13c1ad83e877b0daf025dd2e7759379cba /src/test/ui/error-codes | |
| parent | 5ec7d1dad6dead949a49c76c8ca0425a6e46a223 (diff) | |
| download | rust-0cdbeaa2a3a2d17ed20122dc310f198e58402aa2.tar.gz rust-0cdbeaa2a3a2d17ed20122dc310f198e58402aa2.zip | |
Stabilize `const_raw_ptr_deref` for `*const T`
This stabilizes dereferencing immutable raw pointers in const contexts. It does not stabilize `*mut T` dereferencing. This is placed behind the `const_raw_mut_ptr_deref` feature gate.
Diffstat (limited to 'src/test/ui/error-codes')
| -rw-r--r-- | src/test/ui/error-codes/E0396-fixed.rs | 4 | ||||
| -rw-r--r-- | src/test/ui/error-codes/E0396.rs | 12 | ||||
| -rw-r--r-- | src/test/ui/error-codes/E0396.stderr | 24 |
3 files changed, 19 insertions, 21 deletions
diff --git a/src/test/ui/error-codes/E0396-fixed.rs b/src/test/ui/error-codes/E0396-fixed.rs index 654b21f05b6..fe20da1a8ea 100644 --- a/src/test/ui/error-codes/E0396-fixed.rs +++ b/src/test/ui/error-codes/E0396-fixed.rs @@ -1,6 +1,6 @@ -#![feature(const_raw_ptr_deref)] +#![feature(const_mut_refs)] -const REG_ADDR: *const u8 = 0x5f3759df as *const u8; +const REG_ADDR: *mut u8 = 0x5f3759df as *mut u8; const VALUE: u8 = unsafe { *REG_ADDR }; //~^ ERROR evaluation of constant value failed diff --git a/src/test/ui/error-codes/E0396.rs b/src/test/ui/error-codes/E0396.rs index 58ed3c2c722..4415b70e75e 100644 --- a/src/test/ui/error-codes/E0396.rs +++ b/src/test/ui/error-codes/E0396.rs @@ -1,19 +1,17 @@ -// gate-test-const_raw_ptr_deref - -const REG_ADDR: *const u8 = 0x5f3759df as *const u8; +const REG_ADDR: *mut u8 = 0x5f3759df as *mut u8; const VALUE: u8 = unsafe { *REG_ADDR }; -//~^ ERROR dereferencing raw pointers in constants is unstable +//~^ ERROR dereferencing raw mutable pointers in constants is unstable const unsafe fn unreachable() -> ! { use std::convert::Infallible; - const INFALLIBLE: *const Infallible = [].as_ptr(); + const INFALLIBLE: *mut Infallible = &[] as *const [Infallible] as *const _ as _; match *INFALLIBLE {} - //~^ ERROR dereferencing raw pointers in constant functions is unstable + //~^ ERROR dereferencing raw mutable pointers in constant functions is unstable const BAD: () = unsafe { match *INFALLIBLE {} }; - //~^ ERROR dereferencing raw pointers in constants is unstable + //~^ ERROR dereferencing raw mutable pointers in constants is unstable } fn main() { diff --git a/src/test/ui/error-codes/E0396.stderr b/src/test/ui/error-codes/E0396.stderr index 20dad1b983c..8c87f40674f 100644 --- a/src/test/ui/error-codes/E0396.stderr +++ b/src/test/ui/error-codes/E0396.stderr @@ -1,29 +1,29 @@ -error[E0658]: dereferencing raw pointers in constants is unstable - --> $DIR/E0396.rs:5:28 +error[E0658]: dereferencing raw mutable pointers in constants is unstable + --> $DIR/E0396.rs:3:28 | LL | const VALUE: u8 = unsafe { *REG_ADDR }; | ^^^^^^^^^ | - = note: see issue #51911 <https://github.com/rust-lang/rust/issues/51911> for more information - = help: add `#![feature(const_raw_ptr_deref)]` to the crate attributes to enable + = note: see issue #57349 <https://github.com/rust-lang/rust/issues/57349> for more information + = help: add `#![feature(const_mut_refs)]` to the crate attributes to enable -error[E0658]: dereferencing raw pointers in constant functions is unstable - --> $DIR/E0396.rs:12:11 +error[E0658]: dereferencing raw mutable pointers in constant functions is unstable + --> $DIR/E0396.rs:10:11 | LL | match *INFALLIBLE {} | ^^^^^^^^^^^ | - = note: see issue #51911 <https://github.com/rust-lang/rust/issues/51911> for more information - = help: add `#![feature(const_raw_ptr_deref)]` to the crate attributes to enable + = note: see issue #57349 <https://github.com/rust-lang/rust/issues/57349> for more information + = help: add `#![feature(const_mut_refs)]` to the crate attributes to enable -error[E0658]: dereferencing raw pointers in constants is unstable - --> $DIR/E0396.rs:15:36 +error[E0658]: dereferencing raw mutable pointers in constants is unstable + --> $DIR/E0396.rs:13:36 | LL | const BAD: () = unsafe { match *INFALLIBLE {} }; | ^^^^^^^^^^^ | - = note: see issue #51911 <https://github.com/rust-lang/rust/issues/51911> for more information - = help: add `#![feature(const_raw_ptr_deref)]` to the crate attributes to enable + = note: see issue #57349 <https://github.com/rust-lang/rust/issues/57349> for more information + = help: add `#![feature(const_mut_refs)]` to the crate attributes to enable error: aborting due to 3 previous errors |
