diff options
Diffstat (limited to 'src/test/ui/borrowck/issue-20801.rs')
-rw-r--r-- | src/test/ui/borrowck/issue-20801.rs | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/src/test/ui/borrowck/issue-20801.rs b/src/test/ui/borrowck/issue-20801.rs deleted file mode 100644 index c3f136f28..000000000 --- a/src/test/ui/borrowck/issue-20801.rs +++ /dev/null @@ -1,37 +0,0 @@ -// We used to ICE when moving out of a `*mut T` or `*const T`. - -struct T(u8); - -static mut GLOBAL_MUT_T: T = T(0); - -static GLOBAL_T: T = T(0); - -fn imm_ref() -> &'static T { - unsafe { &GLOBAL_T } -} - -fn mut_ref() -> &'static mut T { - unsafe { &mut GLOBAL_MUT_T } -} - -fn mut_ptr() -> *mut T { - unsafe { core::ptr::null_mut() } -} - -fn const_ptr() -> *const T { - unsafe { core::ptr::null() } -} - -pub fn main() { - let a = unsafe { *mut_ref() }; - //~^ ERROR cannot move out of a mutable reference - - let b = unsafe { *imm_ref() }; - //~^ ERROR cannot move out of a shared reference - - let c = unsafe { *mut_ptr() }; - //~^ ERROR cannot move out of a raw pointer - - let d = unsafe { *const_ptr() }; - //~^ ERROR cannot move out of a raw pointer -} |