about summary refs log tree commit diff
path: root/src/test/ui/lint/uninitialized-zeroed.rs
diff options
context:
space:
mode:
author5225225 <5225225@mailbox.org>2022-07-04 23:57:41 +0100
committer5225225 <5225225@mailbox.org>2022-08-26 21:13:33 +0100
commit3e567bcd4f32d413770d464192a2ed6ee636883b (patch)
treecadf26abf4f3f715ba8615390b0183f45b1193cd /src/test/ui/lint/uninitialized-zeroed.rs
parent450e99f93795c81c1f2d10be27fb3a98be5b0cfc (diff)
downloadrust-3e567bcd4f32d413770d464192a2ed6ee636883b.tar.gz
rust-3e567bcd4f32d413770d464192a2ed6ee636883b.zip
Make invalid-value trigger on uninit primitives
Diffstat (limited to 'src/test/ui/lint/uninitialized-zeroed.rs')
-rw-r--r--src/test/ui/lint/uninitialized-zeroed.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/test/ui/lint/uninitialized-zeroed.rs b/src/test/ui/lint/uninitialized-zeroed.rs
index 5cd323c01db..2d1ee6492af 100644
--- a/src/test/ui/lint/uninitialized-zeroed.rs
+++ b/src/test/ui/lint/uninitialized-zeroed.rs
@@ -100,6 +100,9 @@ fn main() {
         let _val: [bool; 2] = mem::zeroed();
         let _val: [bool; 2] = mem::uninitialized(); //~ ERROR: does not permit being left uninitialized
 
+        let _val: i32 = mem::zeroed();
+        let _val: i32 = mem::uninitialized(); //~ ERROR: does not permit being left uninitialized
+
         // Transmute-from-0
         let _val: &'static i32 = mem::transmute(0usize); //~ ERROR: does not permit zero-initialization
         let _val: &'static [i32] = mem::transmute((0usize, 0usize)); //~ ERROR: does not permit zero-initialization
@@ -114,13 +117,12 @@ fn main() {
         let _val: Option<&'static i32> = mem::zeroed();
         let _val: Option<fn()> = mem::zeroed();
         let _val: MaybeUninit<&'static i32> = mem::zeroed();
-        let _val: i32 = mem::zeroed();
         let _val: bool = MaybeUninit::zeroed().assume_init();
         let _val: [bool; 0] = MaybeUninit::uninit().assume_init();
         let _val: [!; 0] = MaybeUninit::zeroed().assume_init();
+
         // Some things that happen to work due to rustc implementation details,
         // but are not guaranteed to keep working.
-        let _val: i32 = mem::uninitialized();
         let _val: OneFruit = mem::uninitialized();
     }
 }