diff options
Diffstat (limited to 'tests/ui/rustc_public-ir-print/basic_function.stdout')
| -rw-r--r-- | tests/ui/rustc_public-ir-print/basic_function.stdout | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/tests/ui/rustc_public-ir-print/basic_function.stdout b/tests/ui/rustc_public-ir-print/basic_function.stdout new file mode 100644 index 00000000000..dc885e009e9 --- /dev/null +++ b/tests/ui/rustc_public-ir-print/basic_function.stdout @@ -0,0 +1,87 @@ +// WARNING: This is highly experimental output it's intended for rustc_public developers only. +// If you find a bug or want to improve the output open a issue at https://github.com/rust-lang/project-stable-mir. +fn foo(_1: i32) -> i32 { + let mut _0: i32; + let mut _2: i32; + let mut _3: (i32, bool); + debug i => _1; + bb0: { + StorageLive(_2); + _2 = _1; + _3 = CheckedAdd(_2, 1_i32); + assert(!move (_3.1: bool), "attempt to compute `{} + {}`, which would overflow", move _2, 1_i32) -> [success: bb1, unwind continue]; + } + bb1: { + _0 = move (_3.0: i32); + StorageDead(_2); + return; + } +} +fn bar(_1: &mut Vec<i32>) -> Vec<i32> { + let mut _0: Vec<i32>; + let mut _2: Vec<i32>; + let mut _3: &Vec<i32>; + let _4: (); + let mut _5: &mut Vec<i32>; + debug vec => _1; + debug new_vec => _2; + bb0: { + StorageLive(_2); + StorageLive(_3); + _3 = &(*_1); + _2 = <Vec<i32> as Clone>::clone(move _3) -> [return: bb1, unwind continue]; + } + bb1: { + StorageDead(_3); + StorageLive(_4); + StorageLive(_5); + _5 = &mut _2; + _4 = Vec::<i32>::push(move _5, 1_i32) -> [return: bb2, unwind: bb3]; + } + bb2: { + StorageDead(_5); + StorageDead(_4); + _0 = move _2; + StorageDead(_2); + return; + } + bb3: { + drop(_2) -> [return: bb4, unwind terminate]; + } + bb4: { + resume; + } +} +fn demux(_1: u8) -> u8 { + let mut _0: u8; + debug input => _1; + bb0: { + switchInt(_1) -> [0: bb4, 1: bb3, 2: bb2, otherwise: bb1]; + } + bb1: { + _0 = 0_u8; + goto -> bb5; + } + bb2: { + _0 = 8_u8; + goto -> bb5; + } + bb3: { + _0 = 6_u8; + goto -> bb5; + } + bb4: { + _0 = 10_u8; + goto -> bb5; + } + bb5: { + return; + } +} +fn main() -> () { + let mut _0: (); + bb0: { + _0 = (); + return; + } +} |
