Created
January 10, 2023 14:20
-
-
Save saethlin/ca1dfa9ed609445e0db30a2023b35099 to your computer and use it in GitHub Desktop.
ptr::read MIR for Rust 1.66
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| fn ptr::read(_1: *const T) -> T { | |
| debug src => _1; // in scope 0 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1119:29: 1119:32 | |
| let mut _0: T; // return place in scope 0 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1119:47: 1119:48 | |
| let mut _2: mem::maybe_uninit::MaybeUninit<T>; // in scope 0 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1127:9: 1127:16 | |
| let mut _3: *const T; // in scope 0 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1139:29: 1139:32 | |
| let mut _4: *mut T; // in scope 0 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1139:34: 1139:50 | |
| let mut _5: &mut mem::maybe_uninit::MaybeUninit<T>; // in scope 0 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1139:34: 1139:50 | |
| let mut _6: mem::maybe_uninit::MaybeUninit<T>; // in scope 0 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1140:9: 1140:12 | |
| let mut _8: *const T; // in scope 0 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/intrinsics.rs:2222:13: 2222:80 | |
| scope 1 { | |
| debug tmp => _2; // in scope 1 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1127:9: 1127:16 | |
| scope 2 { | |
| scope 4 (inlined ptr::read::runtime::<T>) { // at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/intrinsics.rs:2222:13: 2222:80 | |
| debug src => _8; // in scope 4 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/intrinsics.rs:2211:39: 2211:41 | |
| } | |
| scope 5 (inlined maybe_uninit::MaybeUninit::<T>::as_mut_ptr) { // at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1139:34: 1139:50 | |
| debug self => _5; // in scope 5 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:567:29: 567:38 | |
| let mut _9: *mut mem::maybe_uninit::MaybeUninit<T>; // in scope 5 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:569:9: 569:23 | |
| let mut _10: *mut mem::maybe_uninit::MaybeUninit<T>; // in scope 5 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:569:9: 569:23 | |
| } | |
| scope 6 (inlined #[track_caller] maybe_uninit::MaybeUninit::<T>::assume_init) { // at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1140:9: 1140:26 | |
| debug self => _6; // in scope 6 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:622:37: 622:41 | |
| let _11: (); // in scope 6 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:626:13: 626:48 | |
| let mut _12: mem::manually_drop::ManuallyDrop<T>; // in scope 6 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:627:38: 627:48 | |
| scope 7 { | |
| scope 8 (inlined ManuallyDrop::<T>::into_inner) { // at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:627:13: 627:49 | |
| debug slot => _12; // in scope 8 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/manually_drop.rs:88:29: 88:33 | |
| } | |
| } | |
| } | |
| } | |
| } | |
| scope 3 (inlined maybe_uninit::MaybeUninit::<T>::uninit) { // at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1127:19: 1127:45 | |
| let mut _7: (); // in scope 3 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:314:31: 314:33 | |
| } | |
| bb0: { | |
| StorageLive(_2); // scope 0 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1127:9: 1127:16 | |
| StorageLive(_7); // scope 3 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:314:31: 314:33 | |
| Deinit(_2); // scope 3 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:314:9: 314:35 | |
| (_2.0: ()) = move _7; // scope 3 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:314:9: 314:35 | |
| StorageDead(_7); // scope 3 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:314:34: 314:35 | |
| StorageLive(_3); // scope 2 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1139:29: 1139:32 | |
| _3 = _1; // scope 2 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1139:29: 1139:32 | |
| StorageLive(_4); // scope 2 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1139:34: 1139:50 | |
| StorageLive(_5); // scope 2 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1139:34: 1139:50 | |
| _5 = &mut _2; // scope 2 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1139:34: 1139:50 | |
| StorageLive(_9); // scope 5 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:569:9: 569:23 | |
| StorageLive(_10); // scope 5 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:569:9: 569:23 | |
| _10 = &raw mut (*_5); // scope 5 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:569:9: 569:13 | |
| _9 = _10; // scope 5 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:569:9: 569:23 | |
| _4 = move _9 as *mut T (PtrToPtr); // scope 5 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:569:9: 569:33 | |
| StorageDead(_9); // scope 5 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:569:32: 569:33 | |
| StorageDead(_10); // scope 5 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:570:5: 570:6 | |
| StorageDead(_5); // scope 2 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1139:49: 1139:50 | |
| copy_nonoverlapping(dst = move _4, src = move _3, count = const 1_usize); // scope 2 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1139:9: 1139:54 | |
| StorageDead(_4); // scope 2 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1139:53: 1139:54 | |
| StorageDead(_3); // scope 2 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1139:53: 1139:54 | |
| StorageLive(_6); // scope 2 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1140:9: 1140:12 | |
| _6 = move _2; // scope 2 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1140:9: 1140:12 | |
| StorageLive(_11); // scope 7 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:626:13: 626:48 | |
| _11 = intrinsics::assert_inhabited::<T>() -> bb1; // scope 7 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:626:13: 626:48 | |
| // mir::Constant | |
| // + span: /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:626:13: 626:46 | |
| // + literal: Const { ty: extern "rust-intrinsic" fn() {intrinsics::assert_inhabited::<T>}, val: Value(<ZST>) } | |
| } | |
| bb1: { | |
| StorageDead(_11); // scope 7 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:626:48: 626:49 | |
| StorageLive(_12); // scope 7 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:627:38: 627:48 | |
| _12 = move (_6.1: mem::manually_drop::ManuallyDrop<T>); // scope 7 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:627:38: 627:48 | |
| _0 = move (_12.0: T); // scope 8 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/manually_drop.rs:89:9: 89:19 | |
| StorageDead(_12); // scope 7 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:627:48: 627:49 | |
| StorageDead(_6); // scope 2 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1140:25: 1140:26 | |
| StorageDead(_2); // scope 0 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1142:1: 1142:2 | |
| return; // scope 0 at /home/ben/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1142:2: 1142:2 | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment