Skip to content

Instantly share code, notes, and snippets.

@saethlin
Created April 22, 2023 19:28
Show Gist options
  • Save saethlin/cc7295f43e36d4482db1b93f30dba4ec to your computer and use it in GitHub Desktop.
Save saethlin/cc7295f43e36d4482db1b93f30dba4ec to your computer and use it in GitHub Desktop.
fn slice_iter_next(_1: &mut std::slice::Iter<'_, u8>) -> Option<&u8> {
debug it => _1; // in scope 0 at src/main.rs:8:28: 8:30
let mut _0: std::option::Option<&u8>; // return place in scope 0 at src/main.rs:8:66: 8:80
scope 1 (inlined <std::slice::Iter<'_, u8> as Iterator>::next) { // at src/main.rs:9:8: 9:14
debug self => _1; // in scope 1 at /home/ben/rust/library/core/src/slice/iter/macros.rs:126:21: 126:30
let mut _2: *const u8; // in scope 1 at /home/ben/rust/library/core/src/slice/iter/macros.rs:135:41: 135:49
let mut _3: bool; // in scope 1 at /home/ben/rust/library/core/src/slice/iter/macros.rs:8:9: 8:46
let mut _4: *const u8; // in scope 1 at /home/ben/rust/library/core/src/slice/iter/macros.rs:8:9: 8:33
let mut _5: std::ptr::NonNull<u8>; // in scope 1 at /home/ben/rust/library/core/src/slice/iter/macros.rs:8:9: 8:18
let mut _6: *const u8; // in scope 1 at /home/ben/rust/library/core/src/slice/iter/macros.rs:8:37: 8:46
let _7: &u8; // in scope 1 at /home/ben/rust/library/core/src/slice/iter/macros.rs:43:32: 43:70
let _8: *const u8; // in scope 1 at /home/ben/rust/library/core/src/slice/iter/macros.rs:43:47: 43:70
let mut _10: usize; // in scope 1 at /home/ben/rust/library/core/src/slice/iter/macros.rs:43:53: 43:70
scope 2 {
scope 3 (inlined ptr::assume_not_null::<u8>) { // at /home/ben/rust/library/core/src/slice/iter/macros.rs:135:25: 135:50
debug ptr => _2; // in scope 3 at /home/ben/rust/library/core/src/ptr/mod.rs:507:41: 507:44
let mut _9: bool; // in scope 3 at /home/ben/rust/library/core/src/ptr/mod.rs:509:33: 509:61
scope 4 {
}
}
scope 5 (inlined NonNull::<u8>::as_const_ptr) { // at /home/ben/rust/library/core/src/slice/iter/macros.rs:8:19: 8:33
debug self => _5; // in scope 5 at /home/ben/rust/library/core/src/ptr/non_null.rs:330:38: 330:42
}
scope 6 (inlined std::slice::Iter::<'_, u8>::post_inc_start) { // at /home/ben/rust/library/core/src/slice/iter/macros.rs:43:53: 43:70
debug self => _1; // in scope 6 at /home/ben/rust/library/core/src/slice/iter/macros.rs:77:38: 77:47
debug offset => _10; // in scope 6 at /home/ben/rust/library/core/src/slice/iter/macros.rs:77:49: 77:55
let mut _11: std::ptr::NonNull<u8>; // in scope 6 at /home/ben/rust/library/core/src/slice/iter/macros.rs:79:65: 79:73
let mut _12: *const u8; // in scope 6 at /home/ben/rust/library/core/src/slice/iter/macros.rs:59:29: 59:68
let mut _13: *const u8; // in scope 6 at /home/ben/rust/library/core/src/slice/iter/macros.rs:59:29: 59:38
let mut _14: std::ptr::NonNull<u8>; // in scope 6 at /home/ben/rust/library/core/src/slice/iter/macros.rs:85:32: 85:74
let mut _15: *const u8; // in scope 6 at /home/ben/rust/library/core/src/slice/iter/macros.rs:85:56: 85:71
scope 7 {
debug old => _8; // in scope 7 at /home/ben/rust/library/core/src/slice/iter/macros.rs:79:21: 79:24
scope 9 {
scope 17 (inlined ptr::const_ptr::<impl *const u8>::add) { // at /home/ben/rust/library/core/src/slice/iter/macros.rs:85:60: 85:71
debug self => _8; // in scope 17 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:915:29: 915:33
debug count => _10; // in scope 17 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:915:35: 915:40
let mut _19: isize; // in scope 17 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:920:30: 920:44
scope 18 {
scope 19 (inlined ptr::const_ptr::<impl *const u8>::offset) { // at /home/ben/rust/library/core/src/ptr/const_ptr.rs:920:23: 920:45
debug self => _8; // in scope 19 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:460:32: 460:36
debug count => _19; // in scope 19 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:460:38: 460:43
scope 20 {
}
}
}
}
}
scope 10 (inlined ptr::const_ptr::<impl *const u8>::cast::<u8>) { // at /home/ben/rust/library/core/src/slice/iter/macros.rs:59:39: 59:51
debug self => _13; // in scope 10 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:58:26: 58:30
}
scope 11 (inlined ptr::const_ptr::<impl *const u8>::wrapping_sub) { // at /home/ben/rust/library/core/src/slice/iter/macros.rs:59:52: 59:68
debug self => _13; // in scope 11 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:1158:31: 1158:35
debug count => _10; // in scope 11 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:1158:37: 1158:42
let mut _16: isize; // in scope 11 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:1162:30: 1162:61
let mut _17: isize; // in scope 11 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:1162:30: 1162:46
scope 12 (inlined core::num::<impl isize>::wrapping_neg) { // at /home/ben/rust/library/core/src/ptr/const_ptr.rs:1162:47: 1162:61
debug self => _17; // in scope 12 at /home/ben/rust/library/core/src/num/int_macros.rs:1358:35: 1358:39
let mut _18: isize; // in scope 12 at /home/ben/rust/library/core/src/num/int_macros.rs:1359:13: 1359:26
scope 13 (inlined core::num::<impl isize>::wrapping_sub) { // at /home/ben/rust/library/core/src/num/int_macros.rs:1359:27: 1359:45
debug self => _18; // in scope 13 at /home/ben/rust/library/core/src/num/int_macros.rs:1183:35: 1183:39
debug rhs => _17; // in scope 13 at /home/ben/rust/library/core/src/num/int_macros.rs:1183:41: 1183:44
}
}
scope 14 (inlined ptr::const_ptr::<impl *const u8>::wrapping_offset) { // at /home/ben/rust/library/core/src/ptr/const_ptr.rs:1162:14: 1162:62
debug self => _13; // in scope 14 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:540:34: 540:38
debug count => _16; // in scope 14 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:540:40: 540:45
scope 15 {
}
}
}
scope 16 (inlined ptr::const_ptr::<impl *const u8>::cast::<u8>) { // at /home/ben/rust/library/core/src/slice/iter/macros.rs:59:69: 59:75
debug self => _12; // in scope 16 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:58:26: 58:30
}
}
scope 8 {
}
}
}
}
bb0: {
StorageLive(_7); // scope 0 at src/main.rs:9:8: 9:14
StorageLive(_2); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:135:41: 135:49
_2 = ((*_1).1: *const u8); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:135:41: 135:49
StorageLive(_9); // scope 4 at /home/ben/rust/library/core/src/ptr/mod.rs:509:33: 509:61
_9 = Ne(_2, const _); // scope 4 at /home/ben/rust/library/core/src/ptr/mod.rs:509:33: 509:61
// mir::Constant
// + span: /home/ben/rust/library/core/src/ptr/mod.rs:509:40: 509:61
// + literal: Const { ty: *const u8, val: Unevaluated(ptr::assume_not_null::{constant#0}, [u8, *const u8], None) }
assume(move _9); // scope 4 at /home/ben/rust/library/core/src/ptr/mod.rs:509:14: 509:62
StorageDead(_9); // scope 4 at /home/ben/rust/library/core/src/ptr/mod.rs:509:61: 509:62
StorageDead(_2); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:135:49: 135:50
StorageLive(_3); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:8:9: 8:46
StorageLive(_4); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:8:9: 8:33
StorageLive(_5); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:8:9: 8:18
_5 = ((*_1).0: std::ptr::NonNull<u8>); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:8:9: 8:18
_4 = (_5.0: *const u8); // scope 5 at /home/ben/rust/library/core/src/ptr/non_null.rs:331:9: 331:21
StorageDead(_5); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:8:32: 8:33
StorageLive(_6); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:8:37: 8:46
_6 = ((*_1).1: *const u8); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:8:37: 8:46
_3 = Eq(move _4, move _6); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:8:9: 8:46
StorageDead(_6); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:8:45: 8:46
StorageDead(_4); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:8:45: 8:46
switchInt(move _3) -> [0: bb2, otherwise: bb1]; // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:8:9: 8:46
}
bb1: {
_0 = const Option::<&u8>::None; // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:138:25: 138:29
// mir::Constant
// + span: no-location
// + literal: Const { ty: Option<&u8>, val: Value(Scalar(0x0000000000000000)) }
goto -> bb3; // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:137:21: 141:22
}
bb2: {
StorageLive(_8); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:43:47: 43:70
StorageLive(_10); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:43:53: 43:70
StorageLive(_11); // scope 8 at /home/ben/rust/library/core/src/slice/iter/macros.rs:79:65: 79:73
_11 = ((*_1).0: std::ptr::NonNull<u8>); // scope 8 at /home/ben/rust/library/core/src/slice/iter/macros.rs:79:65: 79:73
_8 = move (_11.0: *const u8); // scope 8 at /home/ben/rust/library/core/src/slice/iter/macros.rs:79:50: 79:74
StorageDead(_11); // scope 8 at /home/ben/rust/library/core/src/slice/iter/macros.rs:79:73: 79:74
StorageLive(_14); // scope 7 at /home/ben/rust/library/core/src/slice/iter/macros.rs:85:32: 85:74
StorageLive(_15); // scope 9 at /home/ben/rust/library/core/src/slice/iter/macros.rs:85:56: 85:71
StorageLive(_19); // scope 18 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:920:30: 920:44
_19 = const 1_isize; // scope 18 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:920:30: 920:44
_15 = offset::<u8>(_8, _19) -> [return: bb4, unwind unreachable]; // scope 20 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:465:18: 465:49
// mir::Constant
// + span: /home/ben/rust/library/core/src/ptr/const_ptr.rs:465:18: 465:36
// + literal: Const { ty: unsafe extern "rust-intrinsic" fn(*const u8, isize) -> *const u8 {offset::<u8>}, val: Value(<ZST>) }
}
bb3: {
StorageDead(_3); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:141:21: 141:22
StorageDead(_7); // scope 0 at src/main.rs:9:8: 9:14
return; // scope 0 at src/main.rs:10:2: 10:2
}
bb4: {
StorageDead(_19); // scope 18 at /home/ben/rust/library/core/src/ptr/const_ptr.rs:920:44: 920:45
_14 = move _15 as std::ptr::NonNull<u8> (Transmute); // scope 9 at /home/ben/rust/library/core/src/slice/iter/macros.rs:85:41: 85:72
StorageDead(_15); // scope 9 at /home/ben/rust/library/core/src/slice/iter/macros.rs:85:71: 85:72
((*_1).0: std::ptr::NonNull<u8>) = move _14; // scope 7 at /home/ben/rust/library/core/src/slice/iter/macros.rs:85:21: 85:74
StorageDead(_14); // scope 7 at /home/ben/rust/library/core/src/slice/iter/macros.rs:85:73: 85:74
StorageDead(_10); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:43:53: 43:70
_7 = &(*_8); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:43:32: 43:70
_0 = Option::<&u8>::Some(_7); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:140:25: 140:52
StorageDead(_8); // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:141:21: 141:22
goto -> bb3; // scope 2 at /home/ben/rust/library/core/src/slice/iter/macros.rs:137:21: 141:22
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment