1
Fork 0

get rid of a bunch of unnecessary NOTE in const tests

This commit is contained in:
Ralf Jung 2021-05-15 15:10:14 +02:00
parent a1507b80c2
commit f1fdbe2b7b
9 changed files with 46 additions and 81 deletions

View file

@ -3,13 +3,11 @@
use std::mem; use std::mem;
// Make sure we error with the right kind of error on a too large slice. // Make sure we error with the right kind of error on a too large slice.
const TEST: () = { unsafe { //~ NOTE const TEST: () = { unsafe {
let slice: *const [u8] = mem::transmute((1usize, usize::MAX)); let slice: *const [u8] = mem::transmute((1usize, usize::MAX));
let _val = &*slice; //~ ERROR: any use of this value will cause an error let _val = &*slice; //~ ERROR: any use of this value will cause an error
//~| NOTE: slice is bigger than largest supported object //~| slice is bigger than largest supported object
//~| on by default
//~| WARN this was previously accepted by the compiler but is being phased out //~| WARN this was previously accepted by the compiler but is being phased out
//~| NOTE
} }; } };
fn main() {} fn main() {}

View file

@ -6,7 +6,6 @@ LL | | let slice: *const [u8] = mem::transmute((1usize, usize::MAX));
LL | | let _val = &*slice; LL | | let _val = &*slice;
| | ^^^^^^^ invalid metadata in wide pointer: slice is bigger than largest supported object | | ^^^^^^^ invalid metadata in wide pointer: slice is bigger than largest supported object
LL | | LL | |
... |
LL | | LL | |
LL | | } }; LL | | } };
| |____- | |____-

View file

@ -5,9 +5,7 @@
const TEST: &u8 = &MY_STATIC; const TEST: &u8 = &MY_STATIC;
//~^ ERROR it is undefined behavior to use this value //~^ ERROR it is undefined behavior to use this value
//~| NOTE encountered a reference pointing to a static variable //~| encountered a reference pointing to a static variable
//~| NOTE undefined behavior
//~| NOTE the raw bytes of the constant
static MY_STATIC: u8 = 4; static MY_STATIC: u8 = 4;

View file

@ -3,8 +3,6 @@ error[E0080]: it is undefined behavior to use this value
| |
LL | / const REF_INTERIOR_MUT: &usize = { LL | / const REF_INTERIOR_MUT: &usize = {
LL | | LL | |
LL | |
LL | |
LL | | static FOO: AtomicUsize = AtomicUsize::new(0); LL | | static FOO: AtomicUsize = AtomicUsize::new(0);
LL | | unsafe { &*(&FOO as *const _ as *const usize) } LL | | unsafe { &*(&FOO as *const _ as *const usize) }
LL | | }; LL | | };
@ -16,12 +14,10 @@ LL | | };
} }
error[E0080]: it is undefined behavior to use this value error[E0080]: it is undefined behavior to use this value
--> $DIR/const_refers_to_static2.rs:20:1 --> $DIR/const_refers_to_static2.rs:18:1
| |
LL | / const READ_IMMUT: &usize = { LL | / const READ_IMMUT: &usize = {
LL | | LL | |
LL | |
LL | |
LL | | static FOO: usize = 0; LL | | static FOO: usize = 0;
LL | | &FOO LL | | &FOO
LL | | }; LL | | };
@ -35,17 +31,17 @@ LL | | };
warning: skipping const checks warning: skipping const checks
| |
help: skipping check that does not even have a feature gate help: skipping check that does not even have a feature gate
--> $DIR/const_refers_to_static2.rs:16:18 --> $DIR/const_refers_to_static2.rs:14:18
| |
LL | unsafe { &*(&FOO as *const _ as *const usize) } LL | unsafe { &*(&FOO as *const _ as *const usize) }
| ^^^ | ^^^
help: skipping check for `const_raw_ptr_deref` feature help: skipping check for `const_raw_ptr_deref` feature
--> $DIR/const_refers_to_static2.rs:16:14 --> $DIR/const_refers_to_static2.rs:14:14
| |
LL | unsafe { &*(&FOO as *const _ as *const usize) } LL | unsafe { &*(&FOO as *const _ as *const usize) }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: skipping check that does not even have a feature gate help: skipping check that does not even have a feature gate
--> $DIR/const_refers_to_static2.rs:25:6 --> $DIR/const_refers_to_static2.rs:21:6
| |
LL | &FOO LL | &FOO
| ^^^ | ^^^

View file

@ -9,18 +9,14 @@ use std::sync::atomic::Ordering;
// so they cause an immediate error when *defining* the const. // so they cause an immediate error when *defining* the const.
const REF_INTERIOR_MUT: &usize = { //~ ERROR undefined behavior to use this value const REF_INTERIOR_MUT: &usize = { //~ ERROR undefined behavior to use this value
//~| NOTE encountered a reference pointing to a static variable //~| encountered a reference pointing to a static variable
//~| NOTE undefined behavior
//~| NOTE the raw bytes of the constant
static FOO: AtomicUsize = AtomicUsize::new(0); static FOO: AtomicUsize = AtomicUsize::new(0);
unsafe { &*(&FOO as *const _ as *const usize) } unsafe { &*(&FOO as *const _ as *const usize) }
}; };
// ok some day perhaps // ok some day perhaps
const READ_IMMUT: &usize = { //~ ERROR it is undefined behavior to use this value const READ_IMMUT: &usize = { //~ ERROR it is undefined behavior to use this value
//~| NOTE encountered a reference pointing to a static variable //~| encountered a reference pointing to a static variable
//~| NOTE undefined behavior
//~| NOTE the raw bytes of the constant
static FOO: usize = 0; static FOO: usize = 0;
&FOO &FOO
}; };

View file

@ -3,8 +3,6 @@ error[E0080]: it is undefined behavior to use this value
| |
LL | / const SLICE_MUT: &[u8; 1] = { LL | / const SLICE_MUT: &[u8; 1] = {
LL | | LL | |
LL | |
LL | |
LL | | unsafe { &static_cross_crate::ZERO } LL | | unsafe { &static_cross_crate::ZERO }
LL | | }; LL | | };
| |__^ type validation failed: encountered a reference pointing to a static variable | |__^ type validation failed: encountered a reference pointing to a static variable
@ -15,18 +13,16 @@ LL | | };
} }
error: could not evaluate constant pattern error: could not evaluate constant pattern
--> $DIR/const_refers_to_static_cross_crate.rs:47:9 --> $DIR/const_refers_to_static_cross_crate.rs:40:9
| |
LL | SLICE_MUT => true, LL | SLICE_MUT => true,
| ^^^^^^^^^ | ^^^^^^^^^
error[E0080]: it is undefined behavior to use this value error[E0080]: it is undefined behavior to use this value
--> $DIR/const_refers_to_static_cross_crate.rs:19:1 --> $DIR/const_refers_to_static_cross_crate.rs:17:1
| |
LL | / const U8_MUT: &u8 = { LL | / const U8_MUT: &u8 = {
LL | | LL | |
LL | |
LL | |
LL | | unsafe { &static_cross_crate::ZERO[0] } LL | | unsafe { &static_cross_crate::ZERO[0] }
LL | | }; LL | | };
| |__^ type validation failed: encountered a reference pointing to a static variable | |__^ type validation failed: encountered a reference pointing to a static variable
@ -37,13 +33,13 @@ LL | | };
} }
error: could not evaluate constant pattern error: could not evaluate constant pattern
--> $DIR/const_refers_to_static_cross_crate.rs:56:9 --> $DIR/const_refers_to_static_cross_crate.rs:49:9
| |
LL | U8_MUT => true, LL | U8_MUT => true,
| ^^^^^^ | ^^^^^^
warning: any use of this value will cause an error warning: any use of this value will cause an error
--> $DIR/const_refers_to_static_cross_crate.rs:29:15 --> $DIR/const_refers_to_static_cross_crate.rs:25:15
| |
LL | / const U8_MUT2: &u8 = { LL | / const U8_MUT2: &u8 = {
LL | | unsafe { &(*static_cross_crate::ZERO_REF)[0] } LL | | unsafe { &(*static_cross_crate::ZERO_REF)[0] }
@ -51,12 +47,11 @@ LL | | unsafe { &(*static_cross_crate::ZERO_REF)[0] }
LL | | LL | |
LL | | LL | |
LL | | LL | |
LL | |
LL | | }; LL | | };
| |__- | |__-
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/const_refers_to_static_cross_crate.rs:27:8 --> $DIR/const_refers_to_static_cross_crate.rs:23:8
| |
LL | #[warn(const_err)] LL | #[warn(const_err)]
| ^^^^^^^^^ | ^^^^^^^^^
@ -64,26 +59,25 @@ LL | #[warn(const_err)]
= note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800> = note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800>
error: could not evaluate constant pattern error: could not evaluate constant pattern
--> $DIR/const_refers_to_static_cross_crate.rs:67:9 --> $DIR/const_refers_to_static_cross_crate.rs:60:9
| |
LL | U8_MUT2 => true, LL | U8_MUT2 => true,
| ^^^^^^^ | ^^^^^^^
warning: any use of this value will cause an error warning: any use of this value will cause an error
--> $DIR/const_refers_to_static_cross_crate.rs:37:51 --> $DIR/const_refers_to_static_cross_crate.rs:32:51
| |
LL | / const U8_MUT3: &u8 = { LL | / const U8_MUT3: &u8 = {
LL | | unsafe { match static_cross_crate::OPT_ZERO { Some(ref u) => u, None => panic!() } } LL | | unsafe { match static_cross_crate::OPT_ZERO { Some(ref u) => u, None => panic!() } }
| | ^^^^^^^^^^^ constant accesses static | | ^^^^^^^^^^^ constant accesses static
LL | | LL | |
LL | | LL | |
... |
LL | | LL | |
LL | | }; LL | | };
| |__- | |__-
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/const_refers_to_static_cross_crate.rs:35:8 --> $DIR/const_refers_to_static_cross_crate.rs:30:8
| |
LL | #[warn(const_err)] LL | #[warn(const_err)]
| ^^^^^^^^^ | ^^^^^^^^^
@ -91,31 +85,31 @@ LL | #[warn(const_err)]
= note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800> = note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800>
error: could not evaluate constant pattern error: could not evaluate constant pattern
--> $DIR/const_refers_to_static_cross_crate.rs:75:9 --> $DIR/const_refers_to_static_cross_crate.rs:68:9
| |
LL | U8_MUT3 => true, LL | U8_MUT3 => true,
| ^^^^^^^ | ^^^^^^^
error: could not evaluate constant pattern error: could not evaluate constant pattern
--> $DIR/const_refers_to_static_cross_crate.rs:47:9 --> $DIR/const_refers_to_static_cross_crate.rs:40:9
| |
LL | SLICE_MUT => true, LL | SLICE_MUT => true,
| ^^^^^^^^^ | ^^^^^^^^^
error: could not evaluate constant pattern error: could not evaluate constant pattern
--> $DIR/const_refers_to_static_cross_crate.rs:56:9 --> $DIR/const_refers_to_static_cross_crate.rs:49:9
| |
LL | U8_MUT => true, LL | U8_MUT => true,
| ^^^^^^ | ^^^^^^
error: could not evaluate constant pattern error: could not evaluate constant pattern
--> $DIR/const_refers_to_static_cross_crate.rs:67:9 --> $DIR/const_refers_to_static_cross_crate.rs:60:9
| |
LL | U8_MUT2 => true, LL | U8_MUT2 => true,
| ^^^^^^^ | ^^^^^^^
error: could not evaluate constant pattern error: could not evaluate constant pattern
--> $DIR/const_refers_to_static_cross_crate.rs:75:9 --> $DIR/const_refers_to_static_cross_crate.rs:68:9
| |
LL | U8_MUT3 => true, LL | U8_MUT3 => true,
| ^^^^^^^ | ^^^^^^^
@ -123,57 +117,57 @@ LL | U8_MUT3 => true,
warning: skipping const checks warning: skipping const checks
| |
help: skipping check that does not even have a feature gate help: skipping check that does not even have a feature gate
--> $DIR/const_refers_to_static_cross_crate.rs:16:15 --> $DIR/const_refers_to_static_cross_crate.rs:14:15
| |
LL | unsafe { &static_cross_crate::ZERO } LL | unsafe { &static_cross_crate::ZERO }
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
help: skipping check that does not even have a feature gate help: skipping check that does not even have a feature gate
--> $DIR/const_refers_to_static_cross_crate.rs:16:15 --> $DIR/const_refers_to_static_cross_crate.rs:14:15
| |
LL | unsafe { &static_cross_crate::ZERO } LL | unsafe { &static_cross_crate::ZERO }
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
help: skipping check that does not even have a feature gate help: skipping check that does not even have a feature gate
--> $DIR/const_refers_to_static_cross_crate.rs:23:15 --> $DIR/const_refers_to_static_cross_crate.rs:19:15
| |
LL | unsafe { &static_cross_crate::ZERO[0] } LL | unsafe { &static_cross_crate::ZERO[0] }
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
help: skipping check that does not even have a feature gate help: skipping check that does not even have a feature gate
--> $DIR/const_refers_to_static_cross_crate.rs:23:15 --> $DIR/const_refers_to_static_cross_crate.rs:19:15
| |
LL | unsafe { &static_cross_crate::ZERO[0] } LL | unsafe { &static_cross_crate::ZERO[0] }
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
help: skipping check that does not even have a feature gate help: skipping check that does not even have a feature gate
--> $DIR/const_refers_to_static_cross_crate.rs:23:15 --> $DIR/const_refers_to_static_cross_crate.rs:19:15
| |
LL | unsafe { &static_cross_crate::ZERO[0] } LL | unsafe { &static_cross_crate::ZERO[0] }
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
help: skipping check that does not even have a feature gate help: skipping check that does not even have a feature gate
--> $DIR/const_refers_to_static_cross_crate.rs:29:17 --> $DIR/const_refers_to_static_cross_crate.rs:25:17
| |
LL | unsafe { &(*static_cross_crate::ZERO_REF)[0] } LL | unsafe { &(*static_cross_crate::ZERO_REF)[0] }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: skipping check that does not even have a feature gate help: skipping check that does not even have a feature gate
--> $DIR/const_refers_to_static_cross_crate.rs:37:20 --> $DIR/const_refers_to_static_cross_crate.rs:32:20
| |
LL | unsafe { match static_cross_crate::OPT_ZERO { Some(ref u) => u, None => panic!() } } LL | unsafe { match static_cross_crate::OPT_ZERO { Some(ref u) => u, None => panic!() } }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: skipping check that does not even have a feature gate help: skipping check that does not even have a feature gate
--> $DIR/const_refers_to_static_cross_crate.rs:37:20 --> $DIR/const_refers_to_static_cross_crate.rs:32:20
| |
LL | unsafe { match static_cross_crate::OPT_ZERO { Some(ref u) => u, None => panic!() } } LL | unsafe { match static_cross_crate::OPT_ZERO { Some(ref u) => u, None => panic!() } }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: skipping check that does not even have a feature gate help: skipping check that does not even have a feature gate
--> $DIR/const_refers_to_static_cross_crate.rs:37:20 --> $DIR/const_refers_to_static_cross_crate.rs:32:20
| |
LL | unsafe { match static_cross_crate::OPT_ZERO { Some(ref u) => u, None => panic!() } } LL | unsafe { match static_cross_crate::OPT_ZERO { Some(ref u) => u, None => panic!() } }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: skipping check for `const_panic` feature help: skipping check for `const_panic` feature
--> $DIR/const_refers_to_static_cross_crate.rs:37:77 --> $DIR/const_refers_to_static_cross_crate.rs:32:77
| |
LL | unsafe { match static_cross_crate::OPT_ZERO { Some(ref u) => u, None => panic!() } } LL | unsafe { match static_cross_crate::OPT_ZERO { Some(ref u) => u, None => panic!() } }
| ^^^^^^^^ | ^^^^^^^^
help: skipping check that does not even have a feature gate help: skipping check that does not even have a feature gate
--> $DIR/const_refers_to_static_cross_crate.rs:37:20 --> $DIR/const_refers_to_static_cross_crate.rs:32:20
| |
LL | unsafe { match static_cross_crate::OPT_ZERO { Some(ref u) => u, None => panic!() } } LL | unsafe { match static_cross_crate::OPT_ZERO { Some(ref u) => u, None => panic!() } }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View file

@ -10,36 +10,29 @@ extern crate static_cross_crate;
// Sneaky: reference to a mutable static. // Sneaky: reference to a mutable static.
// Allowing this would be a disaster for pattern matching, we could violate exhaustiveness checking! // Allowing this would be a disaster for pattern matching, we could violate exhaustiveness checking!
const SLICE_MUT: &[u8; 1] = { //~ ERROR undefined behavior to use this value const SLICE_MUT: &[u8; 1] = { //~ ERROR undefined behavior to use this value
//~| NOTE encountered a reference pointing to a static variable //~| encountered a reference pointing to a static variable
//~| NOTE undefined behavior
//~| NOTE the raw bytes of the constant
unsafe { &static_cross_crate::ZERO } unsafe { &static_cross_crate::ZERO }
}; };
const U8_MUT: &u8 = { //~ ERROR undefined behavior to use this value const U8_MUT: &u8 = { //~ ERROR undefined behavior to use this value
//~| NOTE encountered a reference pointing to a static variable //~| encountered a reference pointing to a static variable
//~| NOTE undefined behavior
//~| NOTE the raw bytes of the constant
unsafe { &static_cross_crate::ZERO[0] } unsafe { &static_cross_crate::ZERO[0] }
}; };
// Also test indirection that reads from other static. This causes a const_err. // Also test indirection that reads from other static. This causes a const_err.
#[warn(const_err)] //~ NOTE #[warn(const_err)]
const U8_MUT2: &u8 = { //~ NOTE const U8_MUT2: &u8 = {
unsafe { &(*static_cross_crate::ZERO_REF)[0] } unsafe { &(*static_cross_crate::ZERO_REF)[0] }
//~^ WARN [const_err] //~^ WARN [const_err]
//~| NOTE constant accesses static //~| constant accesses static
//~| WARN this was previously accepted by the compiler but is being phased out //~| WARN this was previously accepted by the compiler but is being phased out
//~| NOTE
}; };
#[warn(const_err)] //~ NOTE #[warn(const_err)]
const U8_MUT3: &u8 = { //~ NOTE const U8_MUT3: &u8 = {
unsafe { match static_cross_crate::OPT_ZERO { Some(ref u) => u, None => panic!() } } unsafe { match static_cross_crate::OPT_ZERO { Some(ref u) => u, None => panic!() } }
//~^ WARN [const_err] //~^ WARN [const_err]
//~| NOTE constant accesses static //~| constant accesses static
//~| NOTE in this expansion of panic!
//~| WARN this was previously accepted by the compiler but is being phased out //~| WARN this was previously accepted by the compiler but is being phased out
//~| NOTE
}; };
pub fn test(x: &[u8; 1]) -> bool { pub fn test(x: &[u8; 1]) -> bool {

View file

@ -59,26 +59,18 @@ check!(!eq, unsafe { (FOO as *const usize as *const u8).offset(3) }, 0);
// at runtime it would be zero and at compile-time it would not be zero. // at runtime it would be zero and at compile-time it would not be zero.
const _: *const usize = unsafe { (FOO as *const usize).offset(2) }; const _: *const usize = unsafe { (FOO as *const usize).offset(2) };
//~^ NOTE
const _: *const u8 = const _: *const u8 =
//~^ NOTE
unsafe { std::ptr::addr_of!((*(FOO as *const usize as *const [u8; 1000]))[999]) }; unsafe { std::ptr::addr_of!((*(FOO as *const usize as *const [u8; 1000]))[999]) };
//~^ ERROR any use of this value will cause an error //~^ ERROR any use of this value will cause an error
//~| NOTE
//~| WARN this was previously accepted by the compiler but is being phased out //~| WARN this was previously accepted by the compiler but is being phased out
//~| NOTE
const _: usize = unsafe { std::mem::transmute::<*const usize, usize>(FOO) + 4 }; const _: usize = unsafe { std::mem::transmute::<*const usize, usize>(FOO) + 4 };
//~^ ERROR any use of this value will cause an error //~^ ERROR any use of this value will cause an error
//~| NOTE cannot cast pointer to integer //~| cannot cast pointer to integer
//~| NOTE
//~| WARN this was previously accepted by the compiler but is being phased out //~| WARN this was previously accepted by the compiler but is being phased out
//~| NOTE
const _: usize = unsafe { *std::mem::transmute::<&&usize, &usize>(&FOO) + 4 }; const _: usize = unsafe { *std::mem::transmute::<&&usize, &usize>(&FOO) + 4 };
//~^ ERROR any use of this value will cause an error //~^ ERROR any use of this value will cause an error
//~| NOTE cannot cast pointer to integer //~| cannot cast pointer to integer
//~| NOTE
//~| WARN this was previously accepted by the compiler but is being phased out //~| WARN this was previously accepted by the compiler but is being phased out
//~| NOTE

View file

@ -18,10 +18,9 @@ LL | const _: *const usize = unsafe { (FOO as *const usize).offset(2) };
= note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800> = note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800>
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/ptr_comparisons.rs:66:33 --> $DIR/ptr_comparisons.rs:64:33
| |
LL | / const _: *const u8 = LL | / const _: *const u8 =
LL | |
LL | | unsafe { std::ptr::addr_of!((*(FOO as *const usize as *const [u8; 1000]))[999]) }; LL | | unsafe { std::ptr::addr_of!((*(FOO as *const usize as *const [u8; 1000]))[999]) };
| |_________________________________^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^___- | |_________________________________^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^___-
| | | |
@ -31,7 +30,7 @@ LL | | unsafe { std::ptr::addr_of!((*(FOO as *const usize as *const [u8; 100
= note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800> = note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800>
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/ptr_comparisons.rs:72:27 --> $DIR/ptr_comparisons.rs:68:27
| |
LL | const _: usize = unsafe { std::mem::transmute::<*const usize, usize>(FOO) + 4 }; LL | const _: usize = unsafe { std::mem::transmute::<*const usize, usize>(FOO) + 4 };
| --------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--- | --------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
@ -42,7 +41,7 @@ LL | const _: usize = unsafe { std::mem::transmute::<*const usize, usize>(FOO) +
= note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800> = note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800>
error: any use of this value will cause an error error: any use of this value will cause an error
--> $DIR/ptr_comparisons.rs:79:27 --> $DIR/ptr_comparisons.rs:73:27
| |
LL | const _: usize = unsafe { *std::mem::transmute::<&&usize, &usize>(&FOO) + 4 }; LL | const _: usize = unsafe { *std::mem::transmute::<&&usize, &usize>(&FOO) + 4 };
| --------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--- | --------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---