Regression test for issue 85435.

This commit is contained in:
Felix S. Klock II 2021-05-21 15:05:53 -04:00
parent 1f130fbff8
commit 4742bbb48b

View file

@ -0,0 +1,28 @@
// check-pass
// This is issue #85435. But the real story is reflected in issue #85561, where
// a bug in the implementation of feature(capture_disjoint_fields) () was
// exposed to non-feature-gated code by a diagnostic changing PR that removed
// the gating in one case.
// This test is double-checking that the case of interest continues to work as
// expected in the *absence* of that feature gate. At the time of this writing,
// enabling the feature gate will cause this test to fail. We obviously cannot
// stabilize that feature until it can correctly handle this test.
fn main() {
let val: u8 = 5;
let u8_ptr: *const u8 = &val;
let _closure = || {
unsafe {
// Fails compilation with:
// error[E0133]: dereference of raw pointer is unsafe and
// requires unsafe function or block
let tmp = *u8_ptr;
tmp
// Just dereferencing and returning directly compiles fine:
// *u8_ptr
}
};
}