about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNadrieril <nadrieril+git@gmail.com>2024-06-27 11:24:05 +0200
committerNadrieril <nadrieril+git@gmail.com>2024-06-27 11:26:34 +0200
commit5df6f720579d3dfc1060ff41e9218e8bc2593535 (patch)
treee821c838f0463cf9379ae2cd9ed1373425c998f6
parent536235f07e57c9108c6c3b1eacb323164e0f4cfb (diff)
Add test
-rw-r--r--tests/mir-opt/building/match/simple_match.match_enum.built.after.mir62
-rw-r--r--tests/mir-opt/building/match/simple_match.rs14
2 files changed, 76 insertions, 0 deletions
diff --git a/tests/mir-opt/building/match/simple_match.match_enum.built.after.mir b/tests/mir-opt/building/match/simple_match.match_enum.built.after.mir
new file mode 100644
index 00000000000..b233aa8b8e5
--- /dev/null
+++ b/tests/mir-opt/building/match/simple_match.match_enum.built.after.mir
@@ -0,0 +1,62 @@
+// MIR for `match_enum` after built
+
+fn match_enum(_1: E1) -> bool {
+    debug x => _1;
+    let mut _0: bool;
+    let mut _2: isize;
+    let mut _3: isize;
+
+    bb0: {
+        PlaceMention(_1);
+        _2 = discriminant(_1);
+        switchInt(move _2) -> [0: bb3, 1: bb5, otherwise: bb2];
+    }
+
+    bb1: {
+        FakeRead(ForMatchedPlace(None), _1);
+        unreachable;
+    }
+
+    bb2: {
+        _3 = discriminant(_1);
+        switchInt(move _3) -> [2: bb8, otherwise: bb1];
+    }
+
+    bb3: {
+        goto -> bb7;
+    }
+
+    bb4: {
+        goto -> bb2;
+    }
+
+    bb5: {
+        goto -> bb7;
+    }
+
+    bb6: {
+        goto -> bb2;
+    }
+
+    bb7: {
+        falseEdge -> [real: bb10, imaginary: bb2];
+    }
+
+    bb8: {
+        _0 = const false;
+        goto -> bb11;
+    }
+
+    bb9: {
+        goto -> bb1;
+    }
+
+    bb10: {
+        _0 = const true;
+        goto -> bb11;
+    }
+
+    bb11: {
+        return;
+    }
+}
diff --git a/tests/mir-opt/building/match/simple_match.rs b/tests/mir-opt/building/match/simple_match.rs
index 61c337822c8..c8b3d90748a 100644
--- a/tests/mir-opt/building/match/simple_match.rs
+++ b/tests/mir-opt/building/match/simple_match.rs
@@ -9,4 +9,18 @@ fn match_bool(x: bool) -> usize {
     }
 }
 
+pub enum E1 {
+    V1,
+    V2,
+    V3,
+}
+
+// EMIT_MIR simple_match.match_enum.built.after.mir
+pub fn match_enum(x: E1) -> bool {
+    match x {
+        E1::V1 | E1::V2 => true,
+        E1::V3 => false,
+    }
+}
+
 fn main() {}