about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/mir-opt/inline_default_trait_body.Trait-a.Inline.panic-abort.diff27
-rw-r--r--tests/mir-opt/inline_default_trait_body.Trait-a.Inline.panic-unwind.diff27
-rw-r--r--tests/mir-opt/inline_default_trait_body.Trait-b.Inline.panic-abort.diff27
-rw-r--r--tests/mir-opt/inline_default_trait_body.Trait-b.Inline.panic-unwind.diff27
-rw-r--r--tests/mir-opt/inline_default_trait_body.rs19
5 files changed, 127 insertions, 0 deletions
diff --git a/tests/mir-opt/inline_default_trait_body.Trait-a.Inline.panic-abort.diff b/tests/mir-opt/inline_default_trait_body.Trait-a.Inline.panic-abort.diff
new file mode 100644
index 00000000000..db72e84f24b
--- /dev/null
+++ b/tests/mir-opt/inline_default_trait_body.Trait-a.Inline.panic-abort.diff
@@ -0,0 +1,27 @@
+- // MIR for `Trait::a` before Inline
++ // MIR for `Trait::a` after Inline
+  
+  fn Trait::a(_1: &Self) -> () {
+      debug self => _1;
+      let mut _0: ();
+      let _2: ();
+      let mut _3: &();
+      let _4: ();
+      let mut _5: &();
+  
+      bb0: {
+          StorageLive(_2);
+          StorageLive(_3);
+          _5 = const <Self as Trait>::a::promoted[0];
+          _3 = &(*_5);
+          _2 = <() as Trait>::b(move _3) -> [return: bb1, unwind unreachable];
+      }
+  
+      bb1: {
+          StorageDead(_3);
+          StorageDead(_2);
+          _0 = const ();
+          return;
+      }
+  }
+  
diff --git a/tests/mir-opt/inline_default_trait_body.Trait-a.Inline.panic-unwind.diff b/tests/mir-opt/inline_default_trait_body.Trait-a.Inline.panic-unwind.diff
new file mode 100644
index 00000000000..aad5a62f82d
--- /dev/null
+++ b/tests/mir-opt/inline_default_trait_body.Trait-a.Inline.panic-unwind.diff
@@ -0,0 +1,27 @@
+- // MIR for `Trait::a` before Inline
++ // MIR for `Trait::a` after Inline
+  
+  fn Trait::a(_1: &Self) -> () {
+      debug self => _1;
+      let mut _0: ();
+      let _2: ();
+      let mut _3: &();
+      let _4: ();
+      let mut _5: &();
+  
+      bb0: {
+          StorageLive(_2);
+          StorageLive(_3);
+          _5 = const <Self as Trait>::a::promoted[0];
+          _3 = &(*_5);
+          _2 = <() as Trait>::b(move _3) -> [return: bb1, unwind continue];
+      }
+  
+      bb1: {
+          StorageDead(_3);
+          StorageDead(_2);
+          _0 = const ();
+          return;
+      }
+  }
+  
diff --git a/tests/mir-opt/inline_default_trait_body.Trait-b.Inline.panic-abort.diff b/tests/mir-opt/inline_default_trait_body.Trait-b.Inline.panic-abort.diff
new file mode 100644
index 00000000000..b5ca892077e
--- /dev/null
+++ b/tests/mir-opt/inline_default_trait_body.Trait-b.Inline.panic-abort.diff
@@ -0,0 +1,27 @@
+- // MIR for `Trait::b` before Inline
++ // MIR for `Trait::b` after Inline
+  
+  fn Trait::b(_1: &Self) -> () {
+      debug self => _1;
+      let mut _0: ();
+      let _2: ();
+      let mut _3: &();
+      let _4: ();
+      let mut _5: &();
+  
+      bb0: {
+          StorageLive(_2);
+          StorageLive(_3);
+          _5 = const <Self as Trait>::b::promoted[0];
+          _3 = &(*_5);
+          _2 = <() as Trait>::a(move _3) -> [return: bb1, unwind unreachable];
+      }
+  
+      bb1: {
+          StorageDead(_3);
+          StorageDead(_2);
+          _0 = const ();
+          return;
+      }
+  }
+  
diff --git a/tests/mir-opt/inline_default_trait_body.Trait-b.Inline.panic-unwind.diff b/tests/mir-opt/inline_default_trait_body.Trait-b.Inline.panic-unwind.diff
new file mode 100644
index 00000000000..1f51d2e4b5e
--- /dev/null
+++ b/tests/mir-opt/inline_default_trait_body.Trait-b.Inline.panic-unwind.diff
@@ -0,0 +1,27 @@
+- // MIR for `Trait::b` before Inline
++ // MIR for `Trait::b` after Inline
+  
+  fn Trait::b(_1: &Self) -> () {
+      debug self => _1;
+      let mut _0: ();
+      let _2: ();
+      let mut _3: &();
+      let _4: ();
+      let mut _5: &();
+  
+      bb0: {
+          StorageLive(_2);
+          StorageLive(_3);
+          _5 = const <Self as Trait>::b::promoted[0];
+          _3 = &(*_5);
+          _2 = <() as Trait>::a(move _3) -> [return: bb1, unwind continue];
+      }
+  
+      bb1: {
+          StorageDead(_3);
+          StorageDead(_2);
+          _0 = const ();
+          return;
+      }
+  }
+  
diff --git a/tests/mir-opt/inline_default_trait_body.rs b/tests/mir-opt/inline_default_trait_body.rs
new file mode 100644
index 00000000000..aeb8031b418
--- /dev/null
+++ b/tests/mir-opt/inline_default_trait_body.rs
@@ -0,0 +1,19 @@
+// EMIT_MIR_FOR_EACH_PANIC_STRATEGY
+// skip-filecheck
+//@ test-mir-pass: Inline
+//@ edition: 2021
+//@ compile-flags: -Zinline-mir --crate-type=lib
+
+// EMIT_MIR inline_default_trait_body.Trait-a.Inline.diff
+// EMIT_MIR inline_default_trait_body.Trait-b.Inline.diff
+pub trait Trait {
+    fn a(&self) {
+        ().b();
+    }
+
+    fn b(&self) {
+        ().a();
+    }
+}
+
+impl Trait for () {}