mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 01:04:03 +00:00
73 lines
2.0 KiB
Diff
73 lines
2.0 KiB
Diff
- // MIR for `unin` before EnumSizeOpt
|
|
+ // MIR for `unin` after EnumSizeOpt
|
|
|
|
fn unin() -> NoData {
|
|
let mut _0: NoData;
|
|
let mut _1: NoData;
|
|
let mut _2: NoData;
|
|
let mut _3: [u8; 8196];
|
|
+ let mut _4: [usize; 2];
|
|
+ let mut _5: isize;
|
|
+ let mut _6: usize;
|
|
+ let mut _7: usize;
|
|
+ let mut _8: *mut NoData;
|
|
+ let mut _9: *mut u8;
|
|
+ let mut _10: *const NoData;
|
|
+ let mut _11: *const u8;
|
|
+ let mut _12: [usize; 2];
|
|
+ let mut _13: isize;
|
|
+ let mut _14: usize;
|
|
+ let mut _15: usize;
|
|
+ let mut _16: *mut NoData;
|
|
+ let mut _17: *mut u8;
|
|
+ let mut _18: *const NoData;
|
|
+ let mut _19: *const u8;
|
|
scope 1 {
|
|
debug a => _1;
|
|
}
|
|
|
|
bb0: {
|
|
StorageLive(_1);
|
|
_1 = NoData::None;
|
|
StorageLive(_2);
|
|
StorageLive(_3);
|
|
_3 = [const 1_u8; 8196];
|
|
_2 = NoData::Large(move _3);
|
|
StorageDead(_3);
|
|
- _1 = move _2;
|
|
+ StorageLive(_4);
|
|
+ _4 = const [8197_usize, 1_usize];
|
|
+ _5 = discriminant(_2);
|
|
+ _6 = _5 as usize (IntToInt);
|
|
+ _7 = _4[_6];
|
|
+ _8 = &raw mut _1;
|
|
+ _9 = _8 as *mut u8 (PtrToPtr);
|
|
+ _10 = &raw const _2;
|
|
+ _11 = _10 as *const u8 (PtrToPtr);
|
|
+ Deinit(_8);
|
|
+ copy_nonoverlapping(dst = _9, src = _11, count = _7);
|
|
+ StorageDead(_4);
|
|
StorageDead(_2);
|
|
- _0 = move _1;
|
|
+ StorageLive(_12);
|
|
+ _12 = const [8197_usize, 1_usize];
|
|
+ _13 = discriminant(_1);
|
|
+ _14 = _13 as usize (IntToInt);
|
|
+ _15 = _12[_14];
|
|
+ _16 = &raw mut _0;
|
|
+ _17 = _16 as *mut u8 (PtrToPtr);
|
|
+ _18 = &raw const _1;
|
|
+ _19 = _18 as *const u8 (PtrToPtr);
|
|
+ Deinit(_16);
|
|
+ copy_nonoverlapping(dst = _17, src = _19, count = _15);
|
|
+ StorageDead(_12);
|
|
StorageDead(_1);
|
|
return;
|
|
}
|
|
+ }
|
|
+
|
|
+ ALLOC0 (size: 8, align: 4) {
|
|
+ 05 20 00 00 01 00 00 00 │ . ......
|
|
}
|
|
|