about summary refs log tree commit diff
path: root/tests/ui/rustc_public-ir-print/basic_function.stdout
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/rustc_public-ir-print/basic_function.stdout')
-rw-r--r--tests/ui/rustc_public-ir-print/basic_function.stdout87
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;
+    }
+}