summaryrefslogtreecommitdiffstats
path: root/src/test/mir-opt/inline
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:18:25 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:18:25 +0000
commit5363f350887b1e5b5dd21a86f88c8af9d7fea6da (patch)
tree35ca005eb6e0e9a1ba3bb5dbc033209ad445dc17 /src/test/mir-opt/inline
parentAdding debian version 1.66.0+dfsg1-1. (diff)
downloadrustc-5363f350887b1e5b5dd21a86f88c8af9d7fea6da.tar.xz
rustc-5363f350887b1e5b5dd21a86f88c8af9d7fea6da.zip
Merging upstream version 1.67.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/mir-opt/inline')
-rw-r--r--src/test/mir-opt/inline/asm_unwind.main.Inline.diff34
-rw-r--r--src/test/mir-opt/inline/asm_unwind.rs (renamed from src/test/mir-opt/inline/asm-unwind.rs)0
-rw-r--r--src/test/mir-opt/inline/caller_with_trivial_bound.foo.Inline.diff22
-rw-r--r--src/test/mir-opt/inline/caller_with_trivial_bound.rs (renamed from src/test/mir-opt/inline/caller-with-trivial-bound.rs)0
-rw-r--r--src/test/mir-opt/inline/cycle.g.Inline.diff23
-rw-r--r--src/test/mir-opt/inline/cycle.main.Inline.diff40
-rw-r--r--src/test/mir-opt/inline/dyn_trait.get_query.Inline.diff66
-rw-r--r--src/test/mir-opt/inline/dyn_trait.mk_cycle.Inline.diff18
-rw-r--r--src/test/mir-opt/inline/dyn_trait.rs (renamed from src/test/mir-opt/inline/dyn-trait.rs)0
-rw-r--r--src/test/mir-opt/inline/dyn_trait.try_execute_query.Inline.diff38
-rw-r--r--src/test/mir-opt/inline/exponential_runtime.main.Inline.diff50
-rw-r--r--src/test/mir-opt/inline/exponential_runtime.rs87
-rw-r--r--src/test/mir-opt/inline/inline_any_operand.bar.Inline.after.mir56
-rw-r--r--src/test/mir-opt/inline/inline_any_operand.rs (renamed from src/test/mir-opt/inline/inline-any-operand.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_async.rs (renamed from src/test/mir-opt/inline/inline-async.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_closure.foo.Inline.after.mir78
-rw-r--r--src/test/mir-opt/inline/inline_closure.rs (renamed from src/test/mir-opt/inline/inline-closure.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_closure_borrows_arg.foo.Inline.after.mir84
-rw-r--r--src/test/mir-opt/inline/inline_closure_borrows_arg.rs (renamed from src/test/mir-opt/inline/inline-closure-borrows-arg.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_closure_captures.foo.Inline.after.mir110
-rw-r--r--src/test/mir-opt/inline/inline_closure_captures.rs (renamed from src/test/mir-opt/inline/inline-closure-captures.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_compatibility.inlined_no_sanitize.Inline.diff18
-rw-r--r--src/test/mir-opt/inline/inline_compatibility.inlined_target_feature.Inline.diff18
-rw-r--r--src/test/mir-opt/inline/inline_compatibility.not_inlined_c_variadic.Inline.diff18
-rw-r--r--src/test/mir-opt/inline/inline_compatibility.not_inlined_no_sanitize.Inline.diff16
-rw-r--r--src/test/mir-opt/inline/inline_compatibility.not_inlined_target_feature.Inline.diff16
-rw-r--r--src/test/mir-opt/inline/inline_compatibility.rs (renamed from src/test/mir-opt/inline/inline-compatibility.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_cycle.one.Inline.diff29
-rw-r--r--src/test/mir-opt/inline/inline_cycle.rs (renamed from src/test/mir-opt/inline/inline-cycle.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_cycle.two.Inline.diff67
-rw-r--r--src/test/mir-opt/inline/inline_cycle_generic.main.Inline.diff31
-rw-r--r--src/test/mir-opt/inline/inline_cycle_generic.rs (renamed from src/test/mir-opt/inline/inline-cycle-generic.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_diverging.f.Inline.diff18
-rw-r--r--src/test/mir-opt/inline/inline_diverging.g.Inline.diff46
-rw-r--r--src/test/mir-opt/inline/inline_diverging.h.Inline.diff102
-rw-r--r--src/test/mir-opt/inline/inline_diverging.rs (renamed from src/test/mir-opt/inline/inline-diverging.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_generator.main.Inline.diff152
-rw-r--r--src/test/mir-opt/inline/inline_generator.rs (renamed from src/test/mir-opt/inline/inline-generator.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_instruction_set.default.Inline.diff54
-rw-r--r--src/test/mir-opt/inline/inline_instruction_set.rs (renamed from src/test/mir-opt/inline/inline-instruction-set.rs)11
-rw-r--r--src/test/mir-opt/inline/inline_instruction_set.t32.Inline.diff56
-rw-r--r--src/test/mir-opt/inline/inline_into_box_place.main.Inline.diff68
-rw-r--r--src/test/mir-opt/inline/inline_into_box_place.rs (renamed from src/test/mir-opt/inline/inline-into-box-place.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_options.main.Inline.after.mir54
-rw-r--r--src/test/mir-opt/inline/inline_options.rs (renamed from src/test/mir-opt/inline/inline-options.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_retag.bar.Inline.after.mir108
-rw-r--r--src/test/mir-opt/inline/inline_retag.rs (renamed from src/test/mir-opt/inline/inline-retag.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_shims.clone.Inline.diff20
-rw-r--r--src/test/mir-opt/inline/inline_shims.drop.Inline.diff48
-rw-r--r--src/test/mir-opt/inline/inline_shims.rs (renamed from src/test/mir-opt/inline/inline-shims.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_specialization.main.Inline.diff22
-rw-r--r--src/test/mir-opt/inline/inline_specialization.rs (renamed from src/test/mir-opt/inline/inline-specialization.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_trait_method.rs (renamed from src/test/mir-opt/inline/inline-trait-method.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_trait_method.test.Inline.after.mir18
-rw-r--r--src/test/mir-opt/inline/inline_trait_method_2.rs (renamed from src/test/mir-opt/inline/inline-trait-method_2.rs)0
-rw-r--r--src/test/mir-opt/inline/inline_trait_method_2.test2.Inline.after.mir34
-rw-r--r--src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.a.Inline.after.mir32
-rw-r--r--src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.b.Inline.after.mir32
-rw-r--r--src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.c.Inline.after.mir24
-rw-r--r--src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.d.Inline.after.mir24
-rw-r--r--src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.rs (renamed from src/test/mir-opt/inline/issue-58867-inline-as-ref-as-mut.rs)0
-rw-r--r--src/test/mir-opt/inline/issue_76997_inline_scopes_parenting.main.Inline.after.mir60
-rw-r--r--src/test/mir-opt/inline/issue_76997_inline_scopes_parenting.rs (renamed from src/test/mir-opt/inline/issue-76997-inline-scopes-parenting.rs)0
-rw-r--r--src/test/mir-opt/inline/issue_78442.bar.Inline.diff72
-rw-r--r--src/test/mir-opt/inline/issue_78442.bar.RevealAll.diff56
-rw-r--r--src/test/mir-opt/inline/issue_78442.rs (renamed from src/test/mir-opt/inline/issue-78442.rs)0
-rw-r--r--src/test/mir-opt/inline/polymorphic_recursion.rs (renamed from src/test/mir-opt/inline/polymorphic-recursion.rs)0
67 files changed, 1078 insertions, 952 deletions
diff --git a/src/test/mir-opt/inline/asm_unwind.main.Inline.diff b/src/test/mir-opt/inline/asm_unwind.main.Inline.diff
index 57072fc0a..f1b62ac38 100644
--- a/src/test/mir-opt/inline/asm_unwind.main.Inline.diff
+++ b/src/test/mir-opt/inline/asm_unwind.main.Inline.diff
@@ -2,44 +2,44 @@
+ // MIR for `main` after Inline
fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/asm-unwind.rs:+0:15: +0:15
- let _1: (); // in scope 0 at $DIR/asm-unwind.rs:+1:5: +1:10
-+ scope 1 (inlined foo) { // at $DIR/asm-unwind.rs:21:5: 21:10
-+ let _2: D; // in scope 1 at $DIR/asm-unwind.rs:15:9: 15:11
+ let mut _0: (); // return place in scope 0 at $DIR/asm_unwind.rs:+0:15: +0:15
+ let _1: (); // in scope 0 at $DIR/asm_unwind.rs:+1:5: +1:10
++ scope 1 (inlined foo) { // at $DIR/asm_unwind.rs:21:5: 21:10
++ let _2: D; // in scope 1 at $DIR/asm_unwind.rs:15:9: 15:11
+ scope 2 {
-+ debug _d => _2; // in scope 2 at $DIR/asm-unwind.rs:15:9: 15:11
++ debug _d => _2; // in scope 2 at $DIR/asm_unwind.rs:15:9: 15:11
+ scope 3 {
+ }
+ }
+ }
bb0: {
- StorageLive(_1); // scope 0 at $DIR/asm-unwind.rs:+1:5: +1:10
-- _1 = foo() -> bb1; // scope 0 at $DIR/asm-unwind.rs:+1:5: +1:10
+ StorageLive(_1); // scope 0 at $DIR/asm_unwind.rs:+1:5: +1:10
+- _1 = foo() -> bb1; // scope 0 at $DIR/asm_unwind.rs:+1:5: +1:10
- // mir::Constant
-- // + span: $DIR/asm-unwind.rs:21:5: 21:8
+- // + span: $DIR/asm_unwind.rs:21:5: 21:8
- // + literal: Const { ty: fn() {foo}, val: Value(<ZST>) }
-+ StorageLive(_2); // scope 1 at $DIR/asm-unwind.rs:15:9: 15:11
-+ asm!("", options(MAY_UNWIND)) -> [return: bb1, unwind: bb3]; // scope 3 at $DIR/asm-unwind.rs:16:14: 16:54
++ StorageLive(_2); // scope 1 at $DIR/asm_unwind.rs:15:9: 15:11
++ asm!("", options(MAY_UNWIND)) -> [return: bb1, unwind: bb3]; // scope 3 at $DIR/asm_unwind.rs:16:14: 16:54
}
bb1: {
-+ drop(_2) -> bb2; // scope 1 at $DIR/asm-unwind.rs:17:1: 17:2
++ drop(_2) -> bb2; // scope 1 at $DIR/asm_unwind.rs:17:1: 17:2
+ }
+
+ bb2: {
-+ StorageDead(_2); // scope 1 at $DIR/asm-unwind.rs:17:1: 17:2
- StorageDead(_1); // scope 0 at $DIR/asm-unwind.rs:+1:10: +1:11
- _0 = const (); // scope 0 at $DIR/asm-unwind.rs:+0:15: +2:2
- return; // scope 0 at $DIR/asm-unwind.rs:+2:2: +2:2
++ StorageDead(_2); // scope 1 at $DIR/asm_unwind.rs:17:1: 17:2
+ StorageDead(_1); // scope 0 at $DIR/asm_unwind.rs:+1:10: +1:11
+ _0 = const (); // scope 0 at $DIR/asm_unwind.rs:+0:15: +2:2
+ return; // scope 0 at $DIR/asm_unwind.rs:+2:2: +2:2
+ }
+
+ bb3 (cleanup): {
-+ drop(_2) -> bb4; // scope 1 at $DIR/asm-unwind.rs:17:1: 17:2
++ drop(_2) -> bb4; // scope 1 at $DIR/asm_unwind.rs:17:1: 17:2
+ }
+
+ bb4 (cleanup): {
-+ resume; // scope 1 at $DIR/asm-unwind.rs:14:1: 17:2
++ resume; // scope 1 at $DIR/asm_unwind.rs:14:1: 17:2
}
}
diff --git a/src/test/mir-opt/inline/asm-unwind.rs b/src/test/mir-opt/inline/asm_unwind.rs
index c03feb433..c03feb433 100644
--- a/src/test/mir-opt/inline/asm-unwind.rs
+++ b/src/test/mir-opt/inline/asm_unwind.rs
diff --git a/src/test/mir-opt/inline/caller_with_trivial_bound.foo.Inline.diff b/src/test/mir-opt/inline/caller_with_trivial_bound.foo.Inline.diff
index d7deb9c66..8b0300678 100644
--- a/src/test/mir-opt/inline/caller_with_trivial_bound.foo.Inline.diff
+++ b/src/test/mir-opt/inline/caller_with_trivial_bound.foo.Inline.diff
@@ -2,32 +2,32 @@
+ // MIR for `foo` after Inline
fn foo() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/caller-with-trivial-bound.rs:+1:1: +1:1
- let mut _1: <IntFactory as Factory<T>>::Item; // in scope 0 at $DIR/caller-with-trivial-bound.rs:+4:9: +4:14
+ let mut _0: (); // return place in scope 0 at $DIR/caller_with_trivial_bound.rs:+1:1: +1:1
+ let mut _1: <IntFactory as Factory<T>>::Item; // in scope 0 at $DIR/caller_with_trivial_bound.rs:+4:9: +4:14
scope 1 {
- debug x => _1; // in scope 1 at $DIR/caller-with-trivial-bound.rs:+4:9: +4:14
+ debug x => _1; // in scope 1 at $DIR/caller_with_trivial_bound.rs:+4:9: +4:14
}
bb0: {
- StorageLive(_1); // scope 0 at $DIR/caller-with-trivial-bound.rs:+4:9: +4:14
- _1 = bar::<T>() -> bb1; // scope 0 at $DIR/caller-with-trivial-bound.rs:+4:51: +4:61
+ StorageLive(_1); // scope 0 at $DIR/caller_with_trivial_bound.rs:+4:9: +4:14
+ _1 = bar::<T>() -> bb1; // scope 0 at $DIR/caller_with_trivial_bound.rs:+4:51: +4:61
// mir::Constant
- // + span: $DIR/caller-with-trivial-bound.rs:20:51: 20:59
+ // + span: $DIR/caller_with_trivial_bound.rs:20:51: 20:59
// + literal: Const { ty: fn() -> <IntFactory as Factory<T>>::Item {bar::<T>}, val: Value(<ZST>) }
}
bb1: {
- _0 = const (); // scope 0 at $DIR/caller-with-trivial-bound.rs:+3:1: +5:2
- drop(_1) -> [return: bb2, unwind: bb3]; // scope 0 at $DIR/caller-with-trivial-bound.rs:+5:1: +5:2
+ _0 = const (); // scope 0 at $DIR/caller_with_trivial_bound.rs:+3:1: +5:2
+ drop(_1) -> [return: bb2, unwind: bb3]; // scope 0 at $DIR/caller_with_trivial_bound.rs:+5:1: +5:2
}
bb2: {
- StorageDead(_1); // scope 0 at $DIR/caller-with-trivial-bound.rs:+5:1: +5:2
- return; // scope 0 at $DIR/caller-with-trivial-bound.rs:+5:2: +5:2
+ StorageDead(_1); // scope 0 at $DIR/caller_with_trivial_bound.rs:+5:1: +5:2
+ return; // scope 0 at $DIR/caller_with_trivial_bound.rs:+5:2: +5:2
}
bb3 (cleanup): {
- resume; // scope 0 at $DIR/caller-with-trivial-bound.rs:+0:1: +5:2
+ resume; // scope 0 at $DIR/caller_with_trivial_bound.rs:+0:1: +5:2
}
}
diff --git a/src/test/mir-opt/inline/caller-with-trivial-bound.rs b/src/test/mir-opt/inline/caller_with_trivial_bound.rs
index 8545db894..8545db894 100644
--- a/src/test/mir-opt/inline/caller-with-trivial-bound.rs
+++ b/src/test/mir-opt/inline/caller_with_trivial_bound.rs
diff --git a/src/test/mir-opt/inline/cycle.g.Inline.diff b/src/test/mir-opt/inline/cycle.g.Inline.diff
index 5f3ee467c..afe157ccd 100644
--- a/src/test/mir-opt/inline/cycle.g.Inline.diff
+++ b/src/test/mir-opt/inline/cycle.g.Inline.diff
@@ -10,8 +10,6 @@
+ let _3: (); // in scope 1 at $DIR/cycle.rs:6:5: 6:8
+ let mut _4: &fn() {main}; // in scope 1 at $DIR/cycle.rs:6:5: 6:6
+ let mut _5: (); // in scope 1 at $DIR/cycle.rs:6:5: 6:8
-+ scope 2 (inlined <fn() {main} as Fn<()>>::call - shim(fn() {main})) { // at $DIR/cycle.rs:6:5: 6:8
-+ }
+ }
bb0: {
@@ -29,7 +27,10 @@
+ StorageLive(_4); // scope 1 at $DIR/cycle.rs:6:5: 6:6
+ _4 = &_2; // scope 1 at $DIR/cycle.rs:6:5: 6:6
+ StorageLive(_5); // scope 1 at $DIR/cycle.rs:6:5: 6:8
-+ _3 = move (*_4)() -> [return: bb4, unwind: bb2]; // scope 2 at $SRC_DIR/core/src/ops/function.rs:LL:COL
++ _3 = <fn() {main} as Fn<()>>::call(move _4, move _5) -> [return: bb2, unwind: bb3]; // scope 1 at $DIR/cycle.rs:6:5: 6:8
++ // mir::Constant
++ // + span: $DIR/cycle.rs:6:5: 6:6
++ // + literal: Const { ty: for<'a> extern "rust-call" fn(&'a fn() {main}, ()) -> <fn() {main} as FnOnce<()>>::Output {<fn() {main} as Fn<()>>::call}, val: Value(<ZST>) }
}
bb1: {
@@ -39,19 +40,19 @@
return; // scope 0 at $DIR/cycle.rs:+2:2: +2:2
+ }
+
-+ bb2 (cleanup): {
-+ drop(_2) -> bb3; // scope 1 at $DIR/cycle.rs:7:1: 7:2
++ bb2: {
++ StorageDead(_5); // scope 1 at $DIR/cycle.rs:6:7: 6:8
++ StorageDead(_4); // scope 1 at $DIR/cycle.rs:6:7: 6:8
++ StorageDead(_3); // scope 1 at $DIR/cycle.rs:6:8: 6:9
++ drop(_2) -> bb1; // scope 1 at $DIR/cycle.rs:7:1: 7:2
+ }
+
+ bb3 (cleanup): {
-+ resume; // scope 1 at $DIR/cycle.rs:5:1: 7:2
++ drop(_2) -> bb4; // scope 1 at $DIR/cycle.rs:7:1: 7:2
+ }
+
-+ bb4: {
-+ StorageDead(_5); // scope 1 at $DIR/cycle.rs:6:7: 6:8
-+ StorageDead(_4); // scope 1 at $DIR/cycle.rs:6:7: 6:8
-+ StorageDead(_3); // scope 1 at $DIR/cycle.rs:6:8: 6:9
-+ drop(_2) -> bb1; // scope 1 at $DIR/cycle.rs:7:1: 7:2
++ bb4 (cleanup): {
++ resume; // scope 1 at $DIR/cycle.rs:5:1: 7:2
}
}
diff --git a/src/test/mir-opt/inline/cycle.main.Inline.diff b/src/test/mir-opt/inline/cycle.main.Inline.diff
index 8b4099b9d..bd89e09ec 100644
--- a/src/test/mir-opt/inline/cycle.main.Inline.diff
+++ b/src/test/mir-opt/inline/cycle.main.Inline.diff
@@ -10,18 +10,6 @@
+ let _3: (); // in scope 1 at $DIR/cycle.rs:6:5: 6:8
+ let mut _4: &fn() {g}; // in scope 1 at $DIR/cycle.rs:6:5: 6:6
+ let mut _5: (); // in scope 1 at $DIR/cycle.rs:6:5: 6:8
-+ scope 2 (inlined <fn() {g} as Fn<()>>::call - shim(fn() {g})) { // at $DIR/cycle.rs:6:5: 6:8
-+ scope 3 (inlined g) { // at $SRC_DIR/core/src/ops/function.rs:LL:COL
-+ let mut _6: fn() {main}; // in scope 3 at $DIR/cycle.rs:12:5: 12:12
-+ scope 4 (inlined f::<fn() {main}>) { // at $DIR/cycle.rs:12:5: 12:12
-+ debug g => _6; // in scope 4 at $DIR/cycle.rs:5:6: 5:7
-+ let _7: (); // in scope 4 at $DIR/cycle.rs:6:5: 6:8
-+ let mut _8: &fn() {main}; // in scope 4 at $DIR/cycle.rs:6:5: 6:6
-+ scope 5 (inlined <fn() {main} as Fn<()>>::call - shim(fn() {main})) { // at $DIR/cycle.rs:6:5: 6:8
-+ }
-+ }
-+ }
-+ }
+ }
bb0: {
@@ -39,11 +27,10 @@
+ StorageLive(_4); // scope 1 at $DIR/cycle.rs:6:5: 6:6
+ _4 = &_2; // scope 1 at $DIR/cycle.rs:6:5: 6:6
+ StorageLive(_5); // scope 1 at $DIR/cycle.rs:6:5: 6:8
-+ StorageLive(_6); // scope 3 at $DIR/cycle.rs:12:5: 12:12
-+ StorageLive(_7); // scope 4 at $DIR/cycle.rs:6:5: 6:8
-+ StorageLive(_8); // scope 4 at $DIR/cycle.rs:6:5: 6:6
-+ _8 = &_6; // scope 4 at $DIR/cycle.rs:6:5: 6:6
-+ _7 = move (*_8)() -> [return: bb4, unwind: bb2]; // scope 5 at $SRC_DIR/core/src/ops/function.rs:LL:COL
++ _3 = <fn() {g} as Fn<()>>::call(move _4, move _5) -> [return: bb2, unwind: bb3]; // scope 1 at $DIR/cycle.rs:6:5: 6:8
++ // mir::Constant
++ // + span: $DIR/cycle.rs:6:5: 6:6
++ // + literal: Const { ty: for<'a> extern "rust-call" fn(&'a fn() {g}, ()) -> <fn() {g} as FnOnce<()>>::Output {<fn() {g} as Fn<()>>::call}, val: Value(<ZST>) }
}
bb1: {
@@ -53,22 +40,19 @@
return; // scope 0 at $DIR/cycle.rs:+2:2: +2:2
+ }
+
-+ bb2 (cleanup): {
-+ drop(_2) -> bb3; // scope 1 at $DIR/cycle.rs:7:1: 7:2
++ bb2: {
++ StorageDead(_5); // scope 1 at $DIR/cycle.rs:6:7: 6:8
++ StorageDead(_4); // scope 1 at $DIR/cycle.rs:6:7: 6:8
++ StorageDead(_3); // scope 1 at $DIR/cycle.rs:6:8: 6:9
++ drop(_2) -> bb1; // scope 1 at $DIR/cycle.rs:7:1: 7:2
+ }
+
+ bb3 (cleanup): {
-+ resume; // scope 1 at $DIR/cycle.rs:5:1: 7:2
++ drop(_2) -> bb4; // scope 1 at $DIR/cycle.rs:7:1: 7:2
+ }
+
-+ bb4: {
-+ StorageDead(_8); // scope 4 at $DIR/cycle.rs:6:7: 6:8
-+ StorageDead(_7); // scope 4 at $DIR/cycle.rs:6:8: 6:9
-+ StorageDead(_6); // scope 3 at $DIR/cycle.rs:12:5: 12:12
-+ StorageDead(_5); // scope 1 at $DIR/cycle.rs:6:7: 6:8
-+ StorageDead(_4); // scope 1 at $DIR/cycle.rs:6:7: 6:8
-+ StorageDead(_3); // scope 1 at $DIR/cycle.rs:6:8: 6:9
-+ drop(_2) -> bb1; // scope 1 at $DIR/cycle.rs:7:1: 7:2
++ bb4 (cleanup): {
++ resume; // scope 1 at $DIR/cycle.rs:5:1: 7:2
}
}
diff --git a/src/test/mir-opt/inline/dyn_trait.get_query.Inline.diff b/src/test/mir-opt/inline/dyn_trait.get_query.Inline.diff
index 1e95b5b29..8ea1a0757 100644
--- a/src/test/mir-opt/inline/dyn_trait.get_query.Inline.diff
+++ b/src/test/mir-opt/inline/dyn_trait.get_query.Inline.diff
@@ -2,61 +2,53 @@
+ // MIR for `get_query` after Inline
fn get_query(_1: &T) -> () {
- debug t => _1; // in scope 0 at $DIR/dyn-trait.rs:+0:31: +0:32
- let mut _0: (); // return place in scope 0 at $DIR/dyn-trait.rs:+0:38: +0:38
- let _2: &<Q as Query>::C; // in scope 0 at $DIR/dyn-trait.rs:+1:9: +1:10
- let mut _3: &T; // in scope 0 at $DIR/dyn-trait.rs:+1:22: +1:23
- let mut _4: &<Q as Query>::C; // in scope 0 at $DIR/dyn-trait.rs:+2:23: +2:24
+ debug t => _1; // in scope 0 at $DIR/dyn_trait.rs:+0:31: +0:32
+ let mut _0: (); // return place in scope 0 at $DIR/dyn_trait.rs:+0:38: +0:38
+ let _2: &<Q as Query>::C; // in scope 0 at $DIR/dyn_trait.rs:+1:9: +1:10
+ let mut _3: &T; // in scope 0 at $DIR/dyn_trait.rs:+1:22: +1:23
+ let mut _4: &<Q as Query>::C; // in scope 0 at $DIR/dyn_trait.rs:+2:23: +2:24
scope 1 {
- debug c => _2; // in scope 1 at $DIR/dyn-trait.rs:+1:9: +1:10
-+ scope 2 (inlined try_execute_query::<<Q as Query>::C>) { // at $DIR/dyn-trait.rs:34:5: 34:25
-+ debug c => _4; // in scope 2 at $DIR/dyn-trait.rs:26:36: 26:37
-+ let mut _5: &dyn Cache<V = <Q as Query>::V>; // in scope 2 at $DIR/dyn-trait.rs:27:14: 27:15
-+ let mut _6: &<Q as Query>::C; // in scope 2 at $DIR/dyn-trait.rs:27:14: 27:15
-+ scope 3 (inlined mk_cycle::<<Q as Query>::V>) { // at $DIR/dyn-trait.rs:27:5: 27:16
-+ debug c => _5; // in scope 3 at $DIR/dyn-trait.rs:20:27: 20:28
-+ let mut _7: &dyn Cache<V = <Q as Query>::V>; // in scope 3 at $DIR/dyn-trait.rs:21:5: 21:22
+ debug c => _2; // in scope 1 at $DIR/dyn_trait.rs:+1:9: +1:10
++ scope 2 (inlined try_execute_query::<<Q as Query>::C>) { // at $DIR/dyn_trait.rs:34:5: 34:25
++ debug c => _4; // in scope 2 at $DIR/dyn_trait.rs:26:36: 26:37
++ let mut _5: &dyn Cache<V = <Q as Query>::V>; // in scope 2 at $DIR/dyn_trait.rs:27:14: 27:15
++ scope 3 (inlined mk_cycle::<<Q as Query>::V>) { // at $DIR/dyn_trait.rs:27:5: 27:16
++ debug c => _5; // in scope 3 at $DIR/dyn_trait.rs:20:27: 20:28
+ }
+ }
}
bb0: {
- StorageLive(_2); // scope 0 at $DIR/dyn-trait.rs:+1:9: +1:10
- StorageLive(_3); // scope 0 at $DIR/dyn-trait.rs:+1:22: +1:23
- _3 = &(*_1); // scope 0 at $DIR/dyn-trait.rs:+1:22: +1:23
- _2 = <Q as Query>::cache::<T>(move _3) -> bb1; // scope 0 at $DIR/dyn-trait.rs:+1:13: +1:24
+ StorageLive(_2); // scope 0 at $DIR/dyn_trait.rs:+1:9: +1:10
+ StorageLive(_3); // scope 0 at $DIR/dyn_trait.rs:+1:22: +1:23
+ _3 = &(*_1); // scope 0 at $DIR/dyn_trait.rs:+1:22: +1:23
+ _2 = <Q as Query>::cache::<T>(move _3) -> bb1; // scope 0 at $DIR/dyn_trait.rs:+1:13: +1:24
// mir::Constant
- // + span: $DIR/dyn-trait.rs:33:13: 33:21
+ // + span: $DIR/dyn_trait.rs:33:13: 33:21
// + user_ty: UserType(0)
// + literal: Const { ty: for<'a> fn(&'a T) -> &'a <Q as Query>::C {<Q as Query>::cache::<T>}, val: Value(<ZST>) }
}
bb1: {
- StorageDead(_3); // scope 0 at $DIR/dyn-trait.rs:+1:23: +1:24
- StorageLive(_4); // scope 1 at $DIR/dyn-trait.rs:+2:23: +2:24
- _4 = &(*_2); // scope 1 at $DIR/dyn-trait.rs:+2:23: +2:24
-- _0 = try_execute_query::<<Q as Query>::C>(move _4) -> bb2; // scope 1 at $DIR/dyn-trait.rs:+2:5: +2:25
-+ StorageLive(_5); // scope 2 at $DIR/dyn-trait.rs:27:14: 27:15
-+ StorageLive(_6); // scope 2 at $DIR/dyn-trait.rs:27:14: 27:15
-+ _6 = _4; // scope 2 at $DIR/dyn-trait.rs:27:14: 27:15
-+ _5 = move _6 as &dyn Cache<V = <Q as Query>::V> (Pointer(Unsize)); // scope 2 at $DIR/dyn-trait.rs:27:14: 27:15
-+ StorageDead(_6); // scope 2 at $DIR/dyn-trait.rs:27:14: 27:15
-+ StorageLive(_7); // scope 3 at $DIR/dyn-trait.rs:21:5: 21:22
-+ _7 = _5; // scope 3 at $DIR/dyn-trait.rs:21:5: 21:22
-+ _0 = <dyn Cache<V = <Q as Query>::V> as Cache>::store_nocache(move _7) -> bb2; // scope 3 at $DIR/dyn-trait.rs:21:5: 21:22
+ StorageDead(_3); // scope 0 at $DIR/dyn_trait.rs:+1:23: +1:24
+ StorageLive(_4); // scope 1 at $DIR/dyn_trait.rs:+2:23: +2:24
+ _4 = &(*_2); // scope 1 at $DIR/dyn_trait.rs:+2:23: +2:24
+- _0 = try_execute_query::<<Q as Query>::C>(move _4) -> bb2; // scope 1 at $DIR/dyn_trait.rs:+2:5: +2:25
++ StorageLive(_5); // scope 2 at $DIR/dyn_trait.rs:27:14: 27:15
++ _5 = move _4 as &dyn Cache<V = <Q as Query>::V> (Pointer(Unsize)); // scope 2 at $DIR/dyn_trait.rs:27:14: 27:15
++ _0 = <dyn Cache<V = <Q as Query>::V> as Cache>::store_nocache(move _5) -> bb2; // scope 3 at $DIR/dyn_trait.rs:21:5: 21:22
// mir::Constant
-- // + span: $DIR/dyn-trait.rs:34:5: 34:22
+- // + span: $DIR/dyn_trait.rs:34:5: 34:22
- // + literal: Const { ty: for<'a> fn(&'a <Q as Query>::C) {try_execute_query::<<Q as Query>::C>}, val: Value(<ZST>) }
-+ // + span: $DIR/dyn-trait.rs:21:7: 21:20
++ // + span: $DIR/dyn_trait.rs:21:7: 21:20
+ // + literal: Const { ty: for<'a> fn(&'a dyn Cache<V = <Q as Query>::V>) {<dyn Cache<V = <Q as Query>::V> as Cache>::store_nocache}, val: Value(<ZST>) }
}
bb2: {
-+ StorageDead(_7); // scope 3 at $DIR/dyn-trait.rs:21:21: 21:22
-+ StorageDead(_5); // scope 2 at $DIR/dyn-trait.rs:27:15: 27:16
- StorageDead(_4); // scope 1 at $DIR/dyn-trait.rs:+2:24: +2:25
- StorageDead(_2); // scope 0 at $DIR/dyn-trait.rs:+3:1: +3:2
- return; // scope 0 at $DIR/dyn-trait.rs:+3:2: +3:2
++ StorageDead(_5); // scope 2 at $DIR/dyn_trait.rs:27:15: 27:16
+ StorageDead(_4); // scope 1 at $DIR/dyn_trait.rs:+2:24: +2:25
+ StorageDead(_2); // scope 0 at $DIR/dyn_trait.rs:+3:1: +3:2
+ return; // scope 0 at $DIR/dyn_trait.rs:+3:2: +3:2
}
}
diff --git a/src/test/mir-opt/inline/dyn_trait.mk_cycle.Inline.diff b/src/test/mir-opt/inline/dyn_trait.mk_cycle.Inline.diff
index 7421db4d0..7653a5ded 100644
--- a/src/test/mir-opt/inline/dyn_trait.mk_cycle.Inline.diff
+++ b/src/test/mir-opt/inline/dyn_trait.mk_cycle.Inline.diff
@@ -2,22 +2,22 @@
+ // MIR for `mk_cycle` after Inline
fn mk_cycle(_1: &dyn Cache<V = V>) -> () {
- debug c => _1; // in scope 0 at $DIR/dyn-trait.rs:+0:27: +0:28
- let mut _0: (); // return place in scope 0 at $DIR/dyn-trait.rs:+0:49: +0:49
- let mut _2: &dyn Cache<V = V>; // in scope 0 at $DIR/dyn-trait.rs:+1:5: +1:22
+ debug c => _1; // in scope 0 at $DIR/dyn_trait.rs:+0:27: +0:28
+ let mut _0: (); // return place in scope 0 at $DIR/dyn_trait.rs:+0:49: +0:49
+ let mut _2: &dyn Cache<V = V>; // in scope 0 at $DIR/dyn_trait.rs:+1:5: +1:22
bb0: {
- StorageLive(_2); // scope 0 at $DIR/dyn-trait.rs:+1:5: +1:22
- _2 = &(*_1); // scope 0 at $DIR/dyn-trait.rs:+1:5: +1:22
- _0 = <dyn Cache<V = V> as Cache>::store_nocache(move _2) -> bb1; // scope 0 at $DIR/dyn-trait.rs:+1:5: +1:22
+ StorageLive(_2); // scope 0 at $DIR/dyn_trait.rs:+1:5: +1:22
+ _2 = &(*_1); // scope 0 at $DIR/dyn_trait.rs:+1:5: +1:22
+ _0 = <dyn Cache<V = V> as Cache>::store_nocache(move _2) -> bb1; // scope 0 at $DIR/dyn_trait.rs:+1:5: +1:22
// mir::Constant
- // + span: $DIR/dyn-trait.rs:21:7: 21:20
+ // + span: $DIR/dyn_trait.rs:21:7: 21:20
// + literal: Const { ty: for<'a> fn(&'a dyn Cache<V = V>) {<dyn Cache<V = V> as Cache>::store_nocache}, val: Value(<ZST>) }
}
bb1: {
- StorageDead(_2); // scope 0 at $DIR/dyn-trait.rs:+1:21: +1:22
- return; // scope 0 at $DIR/dyn-trait.rs:+2:2: +2:2
+ StorageDead(_2); // scope 0 at $DIR/dyn_trait.rs:+1:21: +1:22
+ return; // scope 0 at $DIR/dyn_trait.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/dyn-trait.rs b/src/test/mir-opt/inline/dyn_trait.rs
index 6a46e1e07..6a46e1e07 100644
--- a/src/test/mir-opt/inline/dyn-trait.rs
+++ b/src/test/mir-opt/inline/dyn_trait.rs
diff --git a/src/test/mir-opt/inline/dyn_trait.try_execute_query.Inline.diff b/src/test/mir-opt/inline/dyn_trait.try_execute_query.Inline.diff
index e6e783744..a71d73b74 100644
--- a/src/test/mir-opt/inline/dyn_trait.try_execute_query.Inline.diff
+++ b/src/test/mir-opt/inline/dyn_trait.try_execute_query.Inline.diff
@@ -2,36 +2,32 @@
+ // MIR for `try_execute_query` after Inline
fn try_execute_query(_1: &C) -> () {
- debug c => _1; // in scope 0 at $DIR/dyn-trait.rs:+0:36: +0:37
- let mut _0: (); // return place in scope 0 at $DIR/dyn-trait.rs:+0:43: +0:43
- let mut _2: &dyn Cache<V = <C as Cache>::V>; // in scope 0 at $DIR/dyn-trait.rs:+1:14: +1:15
- let mut _3: &C; // in scope 0 at $DIR/dyn-trait.rs:+1:14: +1:15
-+ scope 1 (inlined mk_cycle::<<C as Cache>::V>) { // at $DIR/dyn-trait.rs:27:5: 27:16
-+ debug c => _2; // in scope 1 at $DIR/dyn-trait.rs:20:27: 20:28
-+ let mut _4: &dyn Cache<V = <C as Cache>::V>; // in scope 1 at $DIR/dyn-trait.rs:21:5: 21:22
+ debug c => _1; // in scope 0 at $DIR/dyn_trait.rs:+0:36: +0:37
+ let mut _0: (); // return place in scope 0 at $DIR/dyn_trait.rs:+0:43: +0:43
+ let mut _2: &dyn Cache<V = <C as Cache>::V>; // in scope 0 at $DIR/dyn_trait.rs:+1:14: +1:15
+ let mut _3: &C; // in scope 0 at $DIR/dyn_trait.rs:+1:14: +1:15
++ scope 1 (inlined mk_cycle::<<C as Cache>::V>) { // at $DIR/dyn_trait.rs:27:5: 27:16
++ debug c => _2; // in scope 1 at $DIR/dyn_trait.rs:20:27: 20:28
+ }
bb0: {
- StorageLive(_2); // scope 0 at $DIR/dyn-trait.rs:+1:14: +1:15
- StorageLive(_3); // scope 0 at $DIR/dyn-trait.rs:+1:14: +1:15
- _3 = &(*_1); // scope 0 at $DIR/dyn-trait.rs:+1:14: +1:15
- _2 = move _3 as &dyn Cache<V = <C as Cache>::V> (Pointer(Unsize)); // scope 0 at $DIR/dyn-trait.rs:+1:14: +1:15
- StorageDead(_3); // scope 0 at $DIR/dyn-trait.rs:+1:14: +1:15
-- _0 = mk_cycle::<<C as Cache>::V>(move _2) -> bb1; // scope 0 at $DIR/dyn-trait.rs:+1:5: +1:16
-+ StorageLive(_4); // scope 1 at $DIR/dyn-trait.rs:21:5: 21:22
-+ _4 = _2; // scope 1 at $DIR/dyn-trait.rs:21:5: 21:22
-+ _0 = <dyn Cache<V = <C as Cache>::V> as Cache>::store_nocache(move _4) -> bb1; // scope 1 at $DIR/dyn-trait.rs:21:5: 21:22
+ StorageLive(_2); // scope 0 at $DIR/dyn_trait.rs:+1:14: +1:15
+ StorageLive(_3); // scope 0 at $DIR/dyn_trait.rs:+1:14: +1:15
+ _3 = &(*_1); // scope 0 at $DIR/dyn_trait.rs:+1:14: +1:15
+ _2 = move _3 as &dyn Cache<V = <C as Cache>::V> (Pointer(Unsize)); // scope 0 at $DIR/dyn_trait.rs:+1:14: +1:15
+ StorageDead(_3); // scope 0 at $DIR/dyn_trait.rs:+1:14: +1:15
+- _0 = mk_cycle::<<C as Cache>::V>(move _2) -> bb1; // scope 0 at $DIR/dyn_trait.rs:+1:5: +1:16
++ _0 = <dyn Cache<V = <C as Cache>::V> as Cache>::store_nocache(move _2) -> bb1; // scope 1 at $DIR/dyn_trait.rs:21:5: 21:22
// mir::Constant
-- // + span: $DIR/dyn-trait.rs:27:5: 27:13
+- // + span: $DIR/dyn_trait.rs:27:5: 27:13
- // + literal: Const { ty: for<'a> fn(&'a (dyn Cache<V = <C as Cache>::V> + 'a)) {mk_cycle::<<C as Cache>::V>}, val: Value(<ZST>) }
-+ // + span: $DIR/dyn-trait.rs:21:7: 21:20
++ // + span: $DIR/dyn_trait.rs:21:7: 21:20
+ // + literal: Const { ty: for<'a> fn(&'a dyn Cache<V = <C as Cache>::V>) {<dyn Cache<V = <C as Cache>::V> as Cache>::store_nocache}, val: Value(<ZST>) }
}
bb1: {
-+ StorageDead(_4); // scope 1 at $DIR/dyn-trait.rs:21:21: 21:22
- StorageDead(_2); // scope 0 at $DIR/dyn-trait.rs:+1:15: +1:16
- return; // scope 0 at $DIR/dyn-trait.rs:+2:2: +2:2
+ StorageDead(_2); // scope 0 at $DIR/dyn_trait.rs:+1:15: +1:16
+ return; // scope 0 at $DIR/dyn_trait.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/exponential_runtime.main.Inline.diff b/src/test/mir-opt/inline/exponential_runtime.main.Inline.diff
new file mode 100644
index 000000000..d9fd7b324
--- /dev/null
+++ b/src/test/mir-opt/inline/exponential_runtime.main.Inline.diff
@@ -0,0 +1,50 @@
+- // MIR for `main` before Inline
++ // MIR for `main` after Inline
+
+ fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/exponential_runtime.rs:+0:11: +0:11
+ let _1: (); // in scope 0 at $DIR/exponential_runtime.rs:+1:5: +1:22
++ scope 1 (inlined <() as G>::call) { // at $DIR/exponential_runtime.rs:86:5: 86:22
++ let _2: (); // in scope 1 at $DIR/exponential_runtime.rs:73:9: 73:25
++ let _3: (); // in scope 1 at $DIR/exponential_runtime.rs:74:9: 74:25
++ let _4: (); // in scope 1 at $DIR/exponential_runtime.rs:75:9: 75:25
++ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/exponential_runtime.rs:+1:5: +1:22
+- _1 = <() as G>::call() -> bb1; // scope 0 at $DIR/exponential_runtime.rs:+1:5: +1:22
++ StorageLive(_2); // scope 1 at $DIR/exponential_runtime.rs:73:9: 73:25
++ _2 = <() as F>::call() -> bb1; // scope 1 at $DIR/exponential_runtime.rs:73:9: 73:25
+ // mir::Constant
+- // + span: $DIR/exponential_runtime.rs:86:5: 86:20
+- // + literal: Const { ty: fn() {<() as G>::call}, val: Value(<ZST>) }
++ // + span: $DIR/exponential_runtime.rs:73:9: 73:23
++ // + literal: Const { ty: fn() {<() as F>::call}, val: Value(<ZST>) }
+ }
+
+ bb1: {
++ StorageDead(_2); // scope 1 at $DIR/exponential_runtime.rs:73:25: 73:26
++ StorageLive(_3); // scope 1 at $DIR/exponential_runtime.rs:74:9: 74:25
++ _3 = <() as F>::call() -> bb2; // scope 1 at $DIR/exponential_runtime.rs:74:9: 74:25
++ // mir::Constant
++ // + span: $DIR/exponential_runtime.rs:74:9: 74:23
++ // + literal: Const { ty: fn() {<() as F>::call}, val: Value(<ZST>) }
++ }
++
++ bb2: {
++ StorageDead(_3); // scope 1 at $DIR/exponential_runtime.rs:74:25: 74:26
++ StorageLive(_4); // scope 1 at $DIR/exponential_runtime.rs:75:9: 75:25
++ _4 = <() as F>::call() -> bb3; // scope 1 at $DIR/exponential_runtime.rs:75:9: 75:25
++ // mir::Constant
++ // + span: $DIR/exponential_runtime.rs:75:9: 75:23
++ // + literal: Const { ty: fn() {<() as F>::call}, val: Value(<ZST>) }
++ }
++
++ bb3: {
++ StorageDead(_4); // scope 1 at $DIR/exponential_runtime.rs:75:25: 75:26
+ StorageDead(_1); // scope 0 at $DIR/exponential_runtime.rs:+1:22: +1:23
+ _0 = const (); // scope 0 at $DIR/exponential_runtime.rs:+0:11: +2:2
+ return; // scope 0 at $DIR/exponential_runtime.rs:+2:2: +2:2
+ }
+ }
+
diff --git a/src/test/mir-opt/inline/exponential_runtime.rs b/src/test/mir-opt/inline/exponential_runtime.rs
new file mode 100644
index 000000000..d9219d76a
--- /dev/null
+++ b/src/test/mir-opt/inline/exponential_runtime.rs
@@ -0,0 +1,87 @@
+// Checks that code with exponential runtime does not have exponential behavior in inlining.
+
+trait A {
+ fn call();
+}
+
+trait B {
+ fn call();
+}
+impl<T: A> B for T {
+ #[inline]
+ fn call() {
+ <T as A>::call();
+ <T as A>::call();
+ <T as A>::call();
+ }
+}
+
+trait C {
+ fn call();
+}
+impl<T: B> C for T {
+ #[inline]
+ fn call() {
+ <T as B>::call();
+ <T as B>::call();
+ <T as B>::call();
+ }
+}
+
+trait D {
+ fn call();
+}
+impl<T: C> D for T {
+ #[inline]
+ fn call() {
+ <T as C>::call();
+ <T as C>::call();
+ <T as C>::call();
+ }
+}
+
+trait E {
+ fn call();
+}
+impl<T: D> E for T {
+ #[inline]
+ fn call() {
+ <T as D>::call();
+ <T as D>::call();
+ <T as D>::call();
+ }
+}
+
+trait F {
+ fn call();
+}
+impl<T: E> F for T {
+ #[inline]
+ fn call() {
+ <T as E>::call();
+ <T as E>::call();
+ <T as E>::call();
+ }
+}
+
+trait G {
+ fn call();
+}
+impl<T: F> G for T {
+ #[inline]
+ fn call() {
+ <T as F>::call();
+ <T as F>::call();
+ <T as F>::call();
+ }
+}
+
+impl A for () {
+ #[inline(never)]
+ fn call() {}
+}
+
+// EMIT_MIR exponential_runtime.main.Inline.diff
+fn main() {
+ <() as G>::call();
+}
diff --git a/src/test/mir-opt/inline/inline_any_operand.bar.Inline.after.mir b/src/test/mir-opt/inline/inline_any_operand.bar.Inline.after.mir
index b27425fb1..3502c2586 100644
--- a/src/test/mir-opt/inline/inline_any_operand.bar.Inline.after.mir
+++ b/src/test/mir-opt/inline/inline_any_operand.bar.Inline.after.mir
@@ -1,44 +1,36 @@
// MIR for `bar` after Inline
fn bar() -> bool {
- let mut _0: bool; // return place in scope 0 at $DIR/inline-any-operand.rs:+0:13: +0:17
- let _1: fn(i32, i32) -> bool {foo}; // in scope 0 at $DIR/inline-any-operand.rs:+1:9: +1:10
- let mut _2: fn(i32, i32) -> bool {foo}; // in scope 0 at $DIR/inline-any-operand.rs:+2:5: +2:6
- let mut _3: i32; // in scope 0 at $DIR/inline-any-operand.rs:+2:5: +2:13
- let mut _4: i32; // in scope 0 at $DIR/inline-any-operand.rs:+2:5: +2:13
+ let mut _0: bool; // return place in scope 0 at $DIR/inline_any_operand.rs:+0:13: +0:17
+ let _1: fn(i32, i32) -> bool {foo}; // in scope 0 at $DIR/inline_any_operand.rs:+1:9: +1:10
+ let mut _2: fn(i32, i32) -> bool {foo}; // in scope 0 at $DIR/inline_any_operand.rs:+2:5: +2:6
+ let mut _3: i32; // in scope 0 at $DIR/inline_any_operand.rs:+2:5: +2:13
+ let mut _4: i32; // in scope 0 at $DIR/inline_any_operand.rs:+2:5: +2:13
scope 1 {
- debug f => _1; // in scope 1 at $DIR/inline-any-operand.rs:+1:9: +1:10
- scope 2 (inlined foo) { // at $DIR/inline-any-operand.rs:12:5: 12:13
- debug x => _3; // in scope 2 at $DIR/inline-any-operand.rs:16:8: 16:9
- debug y => _4; // in scope 2 at $DIR/inline-any-operand.rs:16:16: 16:17
- let mut _5: i32; // in scope 2 at $DIR/inline-any-operand.rs:17:5: 17:6
- let mut _6: i32; // in scope 2 at $DIR/inline-any-operand.rs:17:10: 17:11
+ debug f => _1; // in scope 1 at $DIR/inline_any_operand.rs:+1:9: +1:10
+ scope 2 (inlined foo) { // at $DIR/inline_any_operand.rs:12:5: 12:13
+ debug x => _3; // in scope 2 at $DIR/inline_any_operand.rs:16:8: 16:9
+ debug y => _4; // in scope 2 at $DIR/inline_any_operand.rs:16:16: 16:17
}
}
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-any-operand.rs:+1:9: +1:10
- _1 = foo; // scope 0 at $DIR/inline-any-operand.rs:+1:13: +1:16
+ StorageLive(_1); // scope 0 at $DIR/inline_any_operand.rs:+1:9: +1:10
+ _1 = foo; // scope 0 at $DIR/inline_any_operand.rs:+1:13: +1:16
// mir::Constant
- // + span: $DIR/inline-any-operand.rs:11:13: 11:16
+ // + span: $DIR/inline_any_operand.rs:11:13: 11:16
// + literal: Const { ty: fn(i32, i32) -> bool {foo}, val: Value(<ZST>) }
- StorageLive(_2); // scope 1 at $DIR/inline-any-operand.rs:+2:5: +2:6
- _2 = _1; // scope 1 at $DIR/inline-any-operand.rs:+2:5: +2:6
- StorageLive(_3); // scope 1 at $DIR/inline-any-operand.rs:+2:5: +2:13
- _3 = const 1_i32; // scope 1 at $DIR/inline-any-operand.rs:+2:5: +2:13
- StorageLive(_4); // scope 1 at $DIR/inline-any-operand.rs:+2:5: +2:13
- _4 = const -1_i32; // scope 1 at $DIR/inline-any-operand.rs:+2:5: +2:13
- StorageLive(_5); // scope 2 at $DIR/inline-any-operand.rs:17:5: 17:6
- _5 = _3; // scope 2 at $DIR/inline-any-operand.rs:17:5: 17:6
- StorageLive(_6); // scope 2 at $DIR/inline-any-operand.rs:17:10: 17:11
- _6 = _4; // scope 2 at $DIR/inline-any-operand.rs:17:10: 17:11
- _0 = Eq(move _5, move _6); // scope 2 at $DIR/inline-any-operand.rs:17:5: 17:11
- StorageDead(_6); // scope 2 at $DIR/inline-any-operand.rs:17:10: 17:11
- StorageDead(_5); // scope 2 at $DIR/inline-any-operand.rs:17:10: 17:11
- StorageDead(_4); // scope 1 at $DIR/inline-any-operand.rs:+2:5: +2:13
- StorageDead(_3); // scope 1 at $DIR/inline-any-operand.rs:+2:5: +2:13
- StorageDead(_2); // scope 1 at $DIR/inline-any-operand.rs:+2:12: +2:13
- StorageDead(_1); // scope 0 at $DIR/inline-any-operand.rs:+3:1: +3:2
- return; // scope 0 at $DIR/inline-any-operand.rs:+3:2: +3:2
+ StorageLive(_2); // scope 1 at $DIR/inline_any_operand.rs:+2:5: +2:6
+ _2 = _1; // scope 1 at $DIR/inline_any_operand.rs:+2:5: +2:6
+ StorageLive(_3); // scope 1 at $DIR/inline_any_operand.rs:+2:5: +2:13
+ _3 = const 1_i32; // scope 1 at $DIR/inline_any_operand.rs:+2:5: +2:13
+ StorageLive(_4); // scope 1 at $DIR/inline_any_operand.rs:+2:5: +2:13
+ _4 = const -1_i32; // scope 1 at $DIR/inline_any_operand.rs:+2:5: +2:13
+ _0 = Eq(move _3, move _4); // scope 2 at $DIR/inline_any_operand.rs:17:5: 17:11
+ StorageDead(_4); // scope 1 at $DIR/inline_any_operand.rs:+2:5: +2:13
+ StorageDead(_3); // scope 1 at $DIR/inline_any_operand.rs:+2:5: +2:13
+ StorageDead(_2); // scope 1 at $DIR/inline_any_operand.rs:+2:12: +2:13
+ StorageDead(_1); // scope 0 at $DIR/inline_any_operand.rs:+3:1: +3:2
+ return; // scope 0 at $DIR/inline_any_operand.rs:+3:2: +3:2
}
}
diff --git a/src/test/mir-opt/inline/inline-any-operand.rs b/src/test/mir-opt/inline/inline_any_operand.rs
index fb0de020f..fb0de020f 100644
--- a/src/test/mir-opt/inline/inline-any-operand.rs
+++ b/src/test/mir-opt/inline/inline_any_operand.rs
diff --git a/src/test/mir-opt/inline/inline-async.rs b/src/test/mir-opt/inline/inline_async.rs
index 5c838159b..5c838159b 100644
--- a/src/test/mir-opt/inline/inline-async.rs
+++ b/src/test/mir-opt/inline/inline_async.rs
diff --git a/src/test/mir-opt/inline/inline_closure.foo.Inline.after.mir b/src/test/mir-opt/inline/inline_closure.foo.Inline.after.mir
index 1fadd2464..9eb3a01ee 100644
--- a/src/test/mir-opt/inline/inline_closure.foo.Inline.after.mir
+++ b/src/test/mir-opt/inline/inline_closure.foo.Inline.after.mir
@@ -1,49 +1,49 @@
// MIR for `foo` after Inline
fn foo(_1: T, _2: i32) -> i32 {
- debug _t => _1; // in scope 0 at $DIR/inline-closure.rs:+0:17: +0:19
- debug q => _2; // in scope 0 at $DIR/inline-closure.rs:+0:24: +0:25
- let mut _0: i32; // return place in scope 0 at $DIR/inline-closure.rs:+0:35: +0:38
- let _3: [closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline-closure.rs:+1:9: +1:10
- let mut _4: &[closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline-closure.rs:+2:5: +2:6
- let mut _5: (i32, i32); // in scope 0 at $DIR/inline-closure.rs:+2:5: +2:12
- let mut _6: i32; // in scope 0 at $DIR/inline-closure.rs:+2:7: +2:8
- let mut _7: i32; // in scope 0 at $DIR/inline-closure.rs:+2:10: +2:11
- let mut _8: i32; // in scope 0 at $DIR/inline-closure.rs:+2:5: +2:12
- let mut _9: i32; // in scope 0 at $DIR/inline-closure.rs:+2:5: +2:12
+ debug _t => _1; // in scope 0 at $DIR/inline_closure.rs:+0:17: +0:19
+ debug q => _2; // in scope 0 at $DIR/inline_closure.rs:+0:24: +0:25
+ let mut _0: i32; // return place in scope 0 at $DIR/inline_closure.rs:+0:35: +0:38
+ let _3: [closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline_closure.rs:+1:9: +1:10
+ let mut _4: &[closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline_closure.rs:+2:5: +2:6
+ let mut _5: (i32, i32); // in scope 0 at $DIR/inline_closure.rs:+2:5: +2:12
+ let mut _6: i32; // in scope 0 at $DIR/inline_closure.rs:+2:7: +2:8
+ let mut _7: i32; // in scope 0 at $DIR/inline_closure.rs:+2:10: +2:11
+ let mut _8: i32; // in scope 0 at $DIR/inline_closure.rs:+2:5: +2:12
+ let mut _9: i32; // in scope 0 at $DIR/inline_closure.rs:+2:5: +2:12
scope 1 {
- debug x => _3; // in scope 1 at $DIR/inline-closure.rs:+1:9: +1:10
- scope 2 (inlined foo::<T>::{closure#0}) { // at $DIR/inline-closure.rs:12:5: 12:12
- debug _t => _8; // in scope 2 at $DIR/inline-closure.rs:+1:14: +1:16
- debug _q => _9; // in scope 2 at $DIR/inline-closure.rs:+1:18: +1:20
+ debug x => _3; // in scope 1 at $DIR/inline_closure.rs:+1:9: +1:10
+ scope 2 (inlined foo::<T>::{closure#0}) { // at $DIR/inline_closure.rs:12:5: 12:12
+ debug _t => _8; // in scope 2 at $DIR/inline_closure.rs:+1:14: +1:16
+ debug _q => _9; // in scope 2 at $DIR/inline_closure.rs:+1:18: +1:20
}
}
bb0: {
- StorageLive(_3); // scope 0 at $DIR/inline-closure.rs:+1:9: +1:10
- Deinit(_3); // scope 0 at $DIR/inline-closure.rs:+1:13: +1:24
- StorageLive(_4); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:6
- _4 = &_3; // scope 1 at $DIR/inline-closure.rs:+2:5: +2:6
- StorageLive(_5); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
- StorageLive(_6); // scope 1 at $DIR/inline-closure.rs:+2:7: +2:8
- _6 = _2; // scope 1 at $DIR/inline-closure.rs:+2:7: +2:8
- StorageLive(_7); // scope 1 at $DIR/inline-closure.rs:+2:10: +2:11
- _7 = _2; // scope 1 at $DIR/inline-closure.rs:+2:10: +2:11
- Deinit(_5); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
- (_5.0: i32) = move _6; // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
- (_5.1: i32) = move _7; // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
- StorageLive(_8); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
- _8 = move (_5.0: i32); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
- StorageLive(_9); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
- _9 = move (_5.1: i32); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
- _0 = _8; // scope 2 at $DIR/inline-closure.rs:+1:22: +1:24
- StorageDead(_9); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
- StorageDead(_8); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
- StorageDead(_7); // scope 1 at $DIR/inline-closure.rs:+2:11: +2:12
- StorageDead(_6); // scope 1 at $DIR/inline-closure.rs:+2:11: +2:12
- StorageDead(_5); // scope 1 at $DIR/inline-closure.rs:+2:11: +2:12
- StorageDead(_4); // scope 1 at $DIR/inline-closure.rs:+2:11: +2:12
- StorageDead(_3); // scope 0 at $DIR/inline-closure.rs:+3:1: +3:2
- return; // scope 0 at $DIR/inline-closure.rs:+3:2: +3:2
+ StorageLive(_3); // scope 0 at $DIR/inline_closure.rs:+1:9: +1:10
+ Deinit(_3); // scope 0 at $DIR/inline_closure.rs:+1:13: +1:24
+ StorageLive(_4); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:6
+ _4 = &_3; // scope 1 at $DIR/inline_closure.rs:+2:5: +2:6
+ StorageLive(_5); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
+ StorageLive(_6); // scope 1 at $DIR/inline_closure.rs:+2:7: +2:8
+ _6 = _2; // scope 1 at $DIR/inline_closure.rs:+2:7: +2:8
+ StorageLive(_7); // scope 1 at $DIR/inline_closure.rs:+2:10: +2:11
+ _7 = _2; // scope 1 at $DIR/inline_closure.rs:+2:10: +2:11
+ Deinit(_5); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
+ (_5.0: i32) = move _6; // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
+ (_5.1: i32) = move _7; // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
+ StorageLive(_8); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
+ _8 = move (_5.0: i32); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
+ StorageLive(_9); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
+ _9 = move (_5.1: i32); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
+ _0 = _8; // scope 2 at $DIR/inline_closure.rs:+1:22: +1:24
+ StorageDead(_9); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
+ StorageDead(_8); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
+ StorageDead(_7); // scope 1 at $DIR/inline_closure.rs:+2:11: +2:12
+ StorageDead(_6); // scope 1 at $DIR/inline_closure.rs:+2:11: +2:12
+ StorageDead(_5); // scope 1 at $DIR/inline_closure.rs:+2:11: +2:12
+ StorageDead(_4); // scope 1 at $DIR/inline_closure.rs:+2:11: +2:12
+ StorageDead(_3); // scope 0 at $DIR/inline_closure.rs:+3:1: +3:2
+ return; // scope 0 at $DIR/inline_closure.rs:+3:2: +3:2
}
}
diff --git a/src/test/mir-opt/inline/inline-closure.rs b/src/test/mir-opt/inline/inline_closure.rs
index 715fd0138..715fd0138 100644
--- a/src/test/mir-opt/inline/inline-closure.rs
+++ b/src/test/mir-opt/inline/inline_closure.rs
diff --git a/src/test/mir-opt/inline/inline_closure_borrows_arg.foo.Inline.after.mir b/src/test/mir-opt/inline/inline_closure_borrows_arg.foo.Inline.after.mir
index 4069e9f89..dd32eb2d8 100644
--- a/src/test/mir-opt/inline/inline_closure_borrows_arg.foo.Inline.after.mir
+++ b/src/test/mir-opt/inline/inline_closure_borrows_arg.foo.Inline.after.mir
@@ -1,56 +1,52 @@
// MIR for `foo` after Inline
fn foo(_1: T, _2: &i32) -> i32 {
- debug _t => _1; // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+0:17: +0:19
- debug q => _2; // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+0:24: +0:25
- let mut _0: i32; // return place in scope 0 at $DIR/inline-closure-borrows-arg.rs:+0:36: +0:39
- let _3: [closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+1:9: +1:10
- let mut _4: &[closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:6
- let mut _5: (&i32, &i32); // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
- let mut _6: &i32; // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+5:7: +5:8
- let mut _7: &i32; // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+5:10: +5:11
- let mut _8: &i32; // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
- let mut _9: &i32; // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
+ debug _t => _1; // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+0:17: +0:19
+ debug q => _2; // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+0:24: +0:25
+ let mut _0: i32; // return place in scope 0 at $DIR/inline_closure_borrows_arg.rs:+0:36: +0:39
+ let _3: [closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+1:9: +1:10
+ let mut _4: &[closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:6
+ let mut _5: (&i32, &i32); // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
+ let mut _6: &i32; // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+5:7: +5:8
+ let mut _7: &i32; // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+5:10: +5:11
+ let mut _8: &i32; // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
+ let mut _9: &i32; // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
scope 1 {
- debug x => _3; // in scope 1 at $DIR/inline-closure-borrows-arg.rs:+1:9: +1:10
- scope 2 (inlined foo::<T>::{closure#0}) { // at $DIR/inline-closure-borrows-arg.rs:16:5: 16:12
- debug r => _8; // in scope 2 at $DIR/inline-closure-borrows-arg.rs:+1:14: +1:15
- debug _s => _9; // in scope 2 at $DIR/inline-closure-borrows-arg.rs:+1:23: +1:25
- let _10: &i32; // in scope 2 at $DIR/inline-closure-borrows-arg.rs:+2:13: +2:21
+ debug x => _3; // in scope 1 at $DIR/inline_closure_borrows_arg.rs:+1:9: +1:10
+ scope 2 (inlined foo::<T>::{closure#0}) { // at $DIR/inline_closure_borrows_arg.rs:16:5: 16:12
+ debug r => _8; // in scope 2 at $DIR/inline_closure_borrows_arg.rs:+1:14: +1:15
+ debug _s => _9; // in scope 2 at $DIR/inline_closure_borrows_arg.rs:+1:23: +1:25
scope 3 {
- debug variable => _10; // in scope 3 at $DIR/inline-closure-borrows-arg.rs:+2:13: +2:21
+ debug variable => _8; // in scope 3 at $DIR/inline_closure_borrows_arg.rs:+2:13: +2:21
}
}
}
bb0: {
- StorageLive(_3); // scope 0 at $DIR/inline-closure-borrows-arg.rs:+1:9: +1:10
- Deinit(_3); // scope 0 at $DIR/inline-closure-borrows-arg.rs:+1:13: +4:6
- StorageLive(_4); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:6
- _4 = &_3; // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:6
- StorageLive(_5); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
- StorageLive(_6); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:7: +5:8
- _6 = &(*_2); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:7: +5:8
- StorageLive(_7); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:10: +5:11
- _7 = &(*_2); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:10: +5:11
- Deinit(_5); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
- (_5.0: &i32) = move _6; // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
- (_5.1: &i32) = move _7; // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
- StorageLive(_8); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
- _8 = move (_5.0: &i32); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
- StorageLive(_9); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
- _9 = move (_5.1: &i32); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
- StorageLive(_10); // scope 2 at $DIR/inline-closure-borrows-arg.rs:+2:13: +2:21
- _10 = _8; // scope 2 at $DIR/inline-closure-borrows-arg.rs:+2:24: +2:27
- _0 = (*_10); // scope 3 at $DIR/inline-closure-borrows-arg.rs:+3:9: +3:18
- StorageDead(_10); // scope 2 at $DIR/inline-closure-borrows-arg.rs:+4:5: +4:6
- StorageDead(_9); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
- StorageDead(_8); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
- StorageDead(_7); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:11: +5:12
- StorageDead(_6); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:11: +5:12
- StorageDead(_5); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:11: +5:12
- StorageDead(_4); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:11: +5:12
- StorageDead(_3); // scope 0 at $DIR/inline-closure-borrows-arg.rs:+6:1: +6:2
- return; // scope 0 at $DIR/inline-closure-borrows-arg.rs:+6:2: +6:2
+ StorageLive(_3); // scope 0 at $DIR/inline_closure_borrows_arg.rs:+1:9: +1:10
+ Deinit(_3); // scope 0 at $DIR/inline_closure_borrows_arg.rs:+1:13: +4:6
+ StorageLive(_4); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:6
+ _4 = &_3; // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:6
+ StorageLive(_5); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
+ StorageLive(_6); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:7: +5:8
+ _6 = &(*_2); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:7: +5:8
+ StorageLive(_7); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:10: +5:11
+ _7 = &(*_2); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:10: +5:11
+ Deinit(_5); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
+ (_5.0: &i32) = move _6; // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
+ (_5.1: &i32) = move _7; // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
+ StorageLive(_8); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
+ _8 = move (_5.0: &i32); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
+ StorageLive(_9); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
+ _9 = move (_5.1: &i32); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
+ _0 = (*_8); // scope 3 at $DIR/inline_closure_borrows_arg.rs:+3:9: +3:18
+ StorageDead(_9); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
+ StorageDead(_8); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
+ StorageDead(_7); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:11: +5:12
+ StorageDead(_6); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:11: +5:12
+ StorageDead(_5); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:11: +5:12
+ StorageDead(_4); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:11: +5:12
+ StorageDead(_3); // scope 0 at $DIR/inline_closure_borrows_arg.rs:+6:1: +6:2
+ return; // scope 0 at $DIR/inline_closure_borrows_arg.rs:+6:2: +6:2
}
}
diff --git a/src/test/mir-opt/inline/inline-closure-borrows-arg.rs b/src/test/mir-opt/inline/inline_closure_borrows_arg.rs
index d76bc33f5..d76bc33f5 100644
--- a/src/test/mir-opt/inline/inline-closure-borrows-arg.rs
+++ b/src/test/mir-opt/inline/inline_closure_borrows_arg.rs
diff --git a/src/test/mir-opt/inline/inline_closure_captures.foo.Inline.after.mir b/src/test/mir-opt/inline/inline_closure_captures.foo.Inline.after.mir
index a2234e7c1..fd19c2886 100644
--- a/src/test/mir-opt/inline/inline_closure_captures.foo.Inline.after.mir
+++ b/src/test/mir-opt/inline/inline_closure_captures.foo.Inline.after.mir
@@ -1,65 +1,65 @@
// MIR for `foo` after Inline
fn foo(_1: T, _2: i32) -> (i32, T) {
- debug t => _1; // in scope 0 at $DIR/inline-closure-captures.rs:+0:17: +0:18
- debug q => _2; // in scope 0 at $DIR/inline-closure-captures.rs:+0:23: +0:24
- let mut _0: (i32, T); // return place in scope 0 at $DIR/inline-closure-captures.rs:+0:34: +0:42
- let _3: [closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline-closure-captures.rs:+1:9: +1:10
- let mut _4: &i32; // in scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
- let mut _5: &T; // in scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
- let mut _6: &[closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline-closure-captures.rs:+2:5: +2:6
- let mut _7: (i32,); // in scope 0 at $DIR/inline-closure-captures.rs:+2:5: +2:9
- let mut _8: i32; // in scope 0 at $DIR/inline-closure-captures.rs:+2:7: +2:8
- let mut _9: i32; // in scope 0 at $DIR/inline-closure-captures.rs:+2:5: +2:9
+ debug t => _1; // in scope 0 at $DIR/inline_closure_captures.rs:+0:17: +0:18
+ debug q => _2; // in scope 0 at $DIR/inline_closure_captures.rs:+0:23: +0:24
+ let mut _0: (i32, T); // return place in scope 0 at $DIR/inline_closure_captures.rs:+0:34: +0:42
+ let _3: [closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline_closure_captures.rs:+1:9: +1:10
+ let mut _4: &i32; // in scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
+ let mut _5: &T; // in scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
+ let mut _6: &[closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline_closure_captures.rs:+2:5: +2:6
+ let mut _7: (i32,); // in scope 0 at $DIR/inline_closure_captures.rs:+2:5: +2:9
+ let mut _8: i32; // in scope 0 at $DIR/inline_closure_captures.rs:+2:7: +2:8
+ let mut _9: i32; // in scope 0 at $DIR/inline_closure_captures.rs:+2:5: +2:9
scope 1 {
- debug x => _3; // in scope 1 at $DIR/inline-closure-captures.rs:+1:9: +1:10
- scope 2 (inlined foo::<T>::{closure#0}) { // at $DIR/inline-closure-captures.rs:12:5: 12:9
- debug _q => _9; // in scope 2 at $DIR/inline-closure-captures.rs:+1:14: +1:16
- debug q => (*((*_6).0: &i32)); // in scope 2 at $DIR/inline-closure-captures.rs:+0:23: +0:24
- debug t => (*((*_6).1: &T)); // in scope 2 at $DIR/inline-closure-captures.rs:+0:17: +0:18
- let mut _10: i32; // in scope 2 at $DIR/inline-closure-captures.rs:+1:19: +1:20
- let mut _11: T; // in scope 2 at $DIR/inline-closure-captures.rs:+1:22: +1:23
- let mut _12: &i32; // in scope 2 at $DIR/inline-closure-captures.rs:+1:13: +1:24
- let mut _13: &T; // in scope 2 at $DIR/inline-closure-captures.rs:+1:13: +1:24
+ debug x => _3; // in scope 1 at $DIR/inline_closure_captures.rs:+1:9: +1:10
+ scope 2 (inlined foo::<T>::{closure#0}) { // at $DIR/inline_closure_captures.rs:12:5: 12:9
+ debug _q => _9; // in scope 2 at $DIR/inline_closure_captures.rs:+1:14: +1:16
+ debug q => (*((*_6).0: &i32)); // in scope 2 at $DIR/inline_closure_captures.rs:+0:23: +0:24
+ debug t => (*((*_6).1: &T)); // in scope 2 at $DIR/inline_closure_captures.rs:+0:17: +0:18
+ let mut _10: i32; // in scope 2 at $DIR/inline_closure_captures.rs:+1:19: +1:20
+ let mut _11: T; // in scope 2 at $DIR/inline_closure_captures.rs:+1:22: +1:23
+ let mut _12: &i32; // in scope 2 at $DIR/inline_closure_captures.rs:+1:13: +1:24
+ let mut _13: &T; // in scope 2 at $DIR/inline_closure_captures.rs:+1:13: +1:24
}
}
bb0: {
- StorageLive(_3); // scope 0 at $DIR/inline-closure-captures.rs:+1:9: +1:10
- StorageLive(_4); // scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
- _4 = &_2; // scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
- StorageLive(_5); // scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
- _5 = &_1; // scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
- Deinit(_3); // scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
- (_3.0: &i32) = move _4; // scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
- (_3.1: &T) = move _5; // scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
- StorageDead(_5); // scope 0 at $DIR/inline-closure-captures.rs:+1:16: +1:17
- StorageDead(_4); // scope 0 at $DIR/inline-closure-captures.rs:+1:16: +1:17
- StorageLive(_6); // scope 1 at $DIR/inline-closure-captures.rs:+2:5: +2:6
- _6 = &_3; // scope 1 at $DIR/inline-closure-captures.rs:+2:5: +2:6
- StorageLive(_7); // scope 1 at $DIR/inline-closure-captures.rs:+2:5: +2:9
- StorageLive(_8); // scope 1 at $DIR/inline-closure-captures.rs:+2:7: +2:8
- _8 = _2; // scope 1 at $DIR/inline-closure-captures.rs:+2:7: +2:8
- Deinit(_7); // scope 1 at $DIR/inline-closure-captures.rs:+2:5: +2:9
- (_7.0: i32) = move _8; // scope 1 at $DIR/inline-closure-captures.rs:+2:5: +2:9
- StorageLive(_9); // scope 1 at $DIR/inline-closure-captures.rs:+2:5: +2:9
- _9 = move (_7.0: i32); // scope 1 at $DIR/inline-closure-captures.rs:+2:5: +2:9
- StorageLive(_10); // scope 2 at $DIR/inline-closure-captures.rs:+1:19: +1:20
- _12 = deref_copy ((*_6).0: &i32); // scope 2 at $DIR/inline-closure-captures.rs:+1:19: +1:20
- _10 = (*_12); // scope 2 at $DIR/inline-closure-captures.rs:+1:19: +1:20
- StorageLive(_11); // scope 2 at $DIR/inline-closure-captures.rs:+1:22: +1:23
- _13 = deref_copy ((*_6).1: &T); // scope 2 at $DIR/inline-closure-captures.rs:+1:22: +1:23
- _11 = (*_13); // scope 2 at $DIR/inline-closure-captures.rs:+1:22: +1:23
- Deinit(_0); // scope 2 at $DIR/inline-closure-captures.rs:+1:18: +1:24
- (_0.0: i32) = move _10; // scope 2 at $DIR/inline-closure-captures.rs:+1:18: +1:24
- (_0.1: T) = move _11; // scope 2 at $DIR/inline-closure-captures.rs:+1:18: +1:24
- StorageDead(_11); // scope 2 at $DIR/inline-closure-captures.rs:+1:23: +1:24
- StorageDead(_10); // scope 2 at $DIR/inline-closure-captures.rs:+1:23: +1:24
- StorageDead(_9); // scope 1 at $DIR/inline-closure-captures.rs:+2:5: +2:9
- StorageDead(_8); // scope 1 at $DIR/inline-closure-captures.rs:+2:8: +2:9
- StorageDead(_7); // scope 1 at $DIR/inline-closure-captures.rs:+2:8: +2:9
- StorageDead(_6); // scope 1 at $DIR/inline-closure-captures.rs:+2:8: +2:9
- StorageDead(_3); // scope 0 at $DIR/inline-closure-captures.rs:+3:1: +3:2
- return; // scope 0 at $DIR/inline-closure-captures.rs:+3:2: +3:2
+ StorageLive(_3); // scope 0 at $DIR/inline_closure_captures.rs:+1:9: +1:10
+ StorageLive(_4); // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
+ _4 = &_2; // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
+ StorageLive(_5); // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
+ _5 = &_1; // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
+ Deinit(_3); // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
+ (_3.0: &i32) = move _4; // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
+ (_3.1: &T) = move _5; // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
+ StorageDead(_5); // scope 0 at $DIR/inline_closure_captures.rs:+1:16: +1:17
+ StorageDead(_4); // scope 0 at $DIR/inline_closure_captures.rs:+1:16: +1:17
+ StorageLive(_6); // scope 1 at $DIR/inline_closure_captures.rs:+2:5: +2:6
+ _6 = &_3; // scope 1 at $DIR/inline_closure_captures.rs:+2:5: +2:6
+ StorageLive(_7); // scope 1 at $DIR/inline_closure_captures.rs:+2:5: +2:9
+ StorageLive(_8); // scope 1 at $DIR/inline_closure_captures.rs:+2:7: +2:8
+ _8 = _2; // scope 1 at $DIR/inline_closure_captures.rs:+2:7: +2:8
+ Deinit(_7); // scope 1 at $DIR/inline_closure_captures.rs:+2:5: +2:9
+ (_7.0: i32) = move _8; // scope 1 at $DIR/inline_closure_captures.rs:+2:5: +2:9
+ StorageLive(_9); // scope 1 at $DIR/inline_closure_captures.rs:+2:5: +2:9
+ _9 = move (_7.0: i32); // scope 1 at $DIR/inline_closure_captures.rs:+2:5: +2:9
+ StorageLive(_10); // scope 2 at $DIR/inline_closure_captures.rs:+1:19: +1:20
+ _12 = deref_copy ((*_6).0: &i32); // scope 2 at $DIR/inline_closure_captures.rs:+1:19: +1:20
+ _10 = (*_12); // scope 2 at $DIR/inline_closure_captures.rs:+1:19: +1:20
+ StorageLive(_11); // scope 2 at $DIR/inline_closure_captures.rs:+1:22: +1:23
+ _13 = deref_copy ((*_6).1: &T); // scope 2 at $DIR/inline_closure_captures.rs:+1:22: +1:23
+ _11 = (*_13); // scope 2 at $DIR/inline_closure_captures.rs:+1:22: +1:23
+ Deinit(_0); // scope 2 at $DIR/inline_closure_captures.rs:+1:18: +1:24
+ (_0.0: i32) = move _10; // scope 2 at $DIR/inline_closure_captures.rs:+1:18: +1:24
+ (_0.1: T) = move _11; // scope 2 at $DIR/inline_closure_captures.rs:+1:18: +1:24
+ StorageDead(_11); // scope 2 at $DIR/inline_closure_captures.rs:+1:23: +1:24
+ StorageDead(_10); // scope 2 at $DIR/inline_closure_captures.rs:+1:23: +1:24
+ StorageDead(_9); // scope 1 at $DIR/inline_closure_captures.rs:+2:5: +2:9
+ StorageDead(_8); // scope 1 at $DIR/inline_closure_captures.rs:+2:8: +2:9
+ StorageDead(_7); // scope 1 at $DIR/inline_closure_captures.rs:+2:8: +2:9
+ StorageDead(_6); // scope 1 at $DIR/inline_closure_captures.rs:+2:8: +2:9
+ StorageDead(_3); // scope 0 at $DIR/inline_closure_captures.rs:+3:1: +3:2
+ return; // scope 0 at $DIR/inline_closure_captures.rs:+3:2: +3:2
}
}
diff --git a/src/test/mir-opt/inline/inline-closure-captures.rs b/src/test/mir-opt/inline/inline_closure_captures.rs
index 52b6817e4..52b6817e4 100644
--- a/src/test/mir-opt/inline/inline-closure-captures.rs
+++ b/src/test/mir-opt/inline/inline_closure_captures.rs
diff --git a/src/test/mir-opt/inline/inline_compatibility.inlined_no_sanitize.Inline.diff b/src/test/mir-opt/inline/inline_compatibility.inlined_no_sanitize.Inline.diff
index cf800ba11..e30a5e116 100644
--- a/src/test/mir-opt/inline/inline_compatibility.inlined_no_sanitize.Inline.diff
+++ b/src/test/mir-opt/inline/inline_compatibility.inlined_no_sanitize.Inline.diff
@@ -2,23 +2,23 @@
+ // MIR for `inlined_no_sanitize` after Inline
fn inlined_no_sanitize() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:+0:37: +0:37
- let _1: (); // in scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:18
-+ scope 1 (inlined no_sanitize) { // at $DIR/inline-compatibility.rs:24:5: 24:18
+ let mut _0: (); // return place in scope 0 at $DIR/inline_compatibility.rs:+0:37: +0:37
+ let _1: (); // in scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:18
++ scope 1 (inlined no_sanitize) { // at $DIR/inline_compatibility.rs:24:5: 24:18
+ }
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:18
-- _1 = no_sanitize() -> bb1; // scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:18
+ StorageLive(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:18
+- _1 = no_sanitize() -> bb1; // scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:18
- // mir::Constant
-- // + span: $DIR/inline-compatibility.rs:24:5: 24:16
+- // + span: $DIR/inline_compatibility.rs:24:5: 24:16
- // + literal: Const { ty: unsafe fn() {no_sanitize}, val: Value(<ZST>) }
- }
-
- bb1: {
- StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:18: +1:19
- _0 = const (); // scope 0 at $DIR/inline-compatibility.rs:+0:37: +2:2
- return; // scope 0 at $DIR/inline-compatibility.rs:+2:2: +2:2
+ StorageDead(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:18: +1:19
+ _0 = const (); // scope 0 at $DIR/inline_compatibility.rs:+0:37: +2:2
+ return; // scope 0 at $DIR/inline_compatibility.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/inline_compatibility.inlined_target_feature.Inline.diff b/src/test/mir-opt/inline/inline_compatibility.inlined_target_feature.Inline.diff
index a45f95902..c2b3c46a3 100644
--- a/src/test/mir-opt/inline/inline_compatibility.inlined_target_feature.Inline.diff
+++ b/src/test/mir-opt/inline/inline_compatibility.inlined_target_feature.Inline.diff
@@ -2,23 +2,23 @@
+ // MIR for `inlined_target_feature` after Inline
fn inlined_target_feature() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:+0:40: +0:40
- let _1: (); // in scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:21
-+ scope 1 (inlined target_feature) { // at $DIR/inline-compatibility.rs:13:5: 13:21
+ let mut _0: (); // return place in scope 0 at $DIR/inline_compatibility.rs:+0:40: +0:40
+ let _1: (); // in scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:21
++ scope 1 (inlined target_feature) { // at $DIR/inline_compatibility.rs:13:5: 13:21
+ }
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:21
-- _1 = target_feature() -> bb1; // scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:21
+ StorageLive(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:21
+- _1 = target_feature() -> bb1; // scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:21
- // mir::Constant
-- // + span: $DIR/inline-compatibility.rs:13:5: 13:19
+- // + span: $DIR/inline_compatibility.rs:13:5: 13:19
- // + literal: Const { ty: unsafe fn() {target_feature}, val: Value(<ZST>) }
- }
-
- bb1: {
- StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:21: +1:22
- _0 = const (); // scope 0 at $DIR/inline-compatibility.rs:+0:40: +2:2
- return; // scope 0 at $DIR/inline-compatibility.rs:+2:2: +2:2
+ StorageDead(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:21: +1:22
+ _0 = const (); // scope 0 at $DIR/inline_compatibility.rs:+0:40: +2:2
+ return; // scope 0 at $DIR/inline_compatibility.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/inline_compatibility.not_inlined_c_variadic.Inline.diff b/src/test/mir-opt/inline/inline_compatibility.not_inlined_c_variadic.Inline.diff
index 49aea431e..0ca5a5f70 100644
--- a/src/test/mir-opt/inline/inline_compatibility.not_inlined_c_variadic.Inline.diff
+++ b/src/test/mir-opt/inline/inline_compatibility.not_inlined_c_variadic.Inline.diff
@@ -2,24 +2,24 @@
+ // MIR for `not_inlined_c_variadic` after Inline
fn not_inlined_c_variadic() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:+0:40: +0:40
- let _1: u32; // in scope 0 at $DIR/inline-compatibility.rs:+1:9: +1:10
+ let mut _0: (); // return place in scope 0 at $DIR/inline_compatibility.rs:+0:40: +0:40
+ let _1: u32; // in scope 0 at $DIR/inline_compatibility.rs:+1:9: +1:10
scope 1 {
- debug s => _1; // in scope 1 at $DIR/inline-compatibility.rs:+1:9: +1:10
+ debug s => _1; // in scope 1 at $DIR/inline_compatibility.rs:+1:9: +1:10
}
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:9: +1:10
- _1 = sum(const 4_u32, const 4_u32, const 30_u32, const 200_u32, const 1000_u32) -> bb1; // scope 0 at $DIR/inline-compatibility.rs:+1:13: +1:52
+ StorageLive(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:9: +1:10
+ _1 = sum(const 4_u32, const 4_u32, const 30_u32, const 200_u32, const 1000_u32) -> bb1; // scope 0 at $DIR/inline_compatibility.rs:+1:13: +1:52
// mir::Constant
- // + span: $DIR/inline-compatibility.rs:42:13: 42:16
+ // + span: $DIR/inline_compatibility.rs:42:13: 42:16
// + literal: Const { ty: unsafe extern "C" fn(u32, ...) -> u32 {sum}, val: Value(<ZST>) }
}
bb1: {
- _0 = const (); // scope 0 at $DIR/inline-compatibility.rs:+0:40: +2:2
- StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:+2:1: +2:2
- return; // scope 0 at $DIR/inline-compatibility.rs:+2:2: +2:2
+ _0 = const (); // scope 0 at $DIR/inline_compatibility.rs:+0:40: +2:2
+ StorageDead(_1); // scope 0 at $DIR/inline_compatibility.rs:+2:1: +2:2
+ return; // scope 0 at $DIR/inline_compatibility.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/inline_compatibility.not_inlined_no_sanitize.Inline.diff b/src/test/mir-opt/inline/inline_compatibility.not_inlined_no_sanitize.Inline.diff
index 94ce574a9..00d405c77 100644
--- a/src/test/mir-opt/inline/inline_compatibility.not_inlined_no_sanitize.Inline.diff
+++ b/src/test/mir-opt/inline/inline_compatibility.not_inlined_no_sanitize.Inline.diff
@@ -2,21 +2,21 @@
+ // MIR for `not_inlined_no_sanitize` after Inline
fn not_inlined_no_sanitize() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:+0:41: +0:41
- let _1: (); // in scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:18
+ let mut _0: (); // return place in scope 0 at $DIR/inline_compatibility.rs:+0:41: +0:41
+ let _1: (); // in scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:18
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:18
- _1 = no_sanitize() -> bb1; // scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:18
+ StorageLive(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:18
+ _1 = no_sanitize() -> bb1; // scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:18
// mir::Constant
- // + span: $DIR/inline-compatibility.rs:29:5: 29:16
+ // + span: $DIR/inline_compatibility.rs:29:5: 29:16
// + literal: Const { ty: unsafe fn() {no_sanitize}, val: Value(<ZST>) }
}
bb1: {
- StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:18: +1:19
- _0 = const (); // scope 0 at $DIR/inline-compatibility.rs:+0:41: +2:2
- return; // scope 0 at $DIR/inline-compatibility.rs:+2:2: +2:2
+ StorageDead(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:18: +1:19
+ _0 = const (); // scope 0 at $DIR/inline_compatibility.rs:+0:41: +2:2
+ return; // scope 0 at $DIR/inline_compatibility.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/inline_compatibility.not_inlined_target_feature.Inline.diff b/src/test/mir-opt/inline/inline_compatibility.not_inlined_target_feature.Inline.diff
index 8506e257b..8b9c86f55 100644
--- a/src/test/mir-opt/inline/inline_compatibility.not_inlined_target_feature.Inline.diff
+++ b/src/test/mir-opt/inline/inline_compatibility.not_inlined_target_feature.Inline.diff
@@ -2,21 +2,21 @@
+ // MIR for `not_inlined_target_feature` after Inline
fn not_inlined_target_feature() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:+0:44: +0:44
- let _1: (); // in scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:21
+ let mut _0: (); // return place in scope 0 at $DIR/inline_compatibility.rs:+0:44: +0:44
+ let _1: (); // in scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:21
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:21
- _1 = target_feature() -> bb1; // scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:21
+ StorageLive(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:21
+ _1 = target_feature() -> bb1; // scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:21
// mir::Constant
- // + span: $DIR/inline-compatibility.rs:18:5: 18:19
+ // + span: $DIR/inline_compatibility.rs:18:5: 18:19
// + literal: Const { ty: unsafe fn() {target_feature}, val: Value(<ZST>) }
}
bb1: {
- StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:21: +1:22
- _0 = const (); // scope 0 at $DIR/inline-compatibility.rs:+0:44: +2:2
- return; // scope 0 at $DIR/inline-compatibility.rs:+2:2: +2:2
+ StorageDead(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:21: +1:22
+ _0 = const (); // scope 0 at $DIR/inline_compatibility.rs:+0:44: +2:2
+ return; // scope 0 at $DIR/inline_compatibility.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/inline-compatibility.rs b/src/test/mir-opt/inline/inline_compatibility.rs
index 30aff0a64..30aff0a64 100644
--- a/src/test/mir-opt/inline/inline-compatibility.rs
+++ b/src/test/mir-opt/inline/inline_compatibility.rs
diff --git a/src/test/mir-opt/inline/inline_cycle.one.Inline.diff b/src/test/mir-opt/inline/inline_cycle.one.Inline.diff
index a4d706de0..f54a1a747 100644
--- a/src/test/mir-opt/inline/inline_cycle.one.Inline.diff
+++ b/src/test/mir-opt/inline/inline_cycle.one.Inline.diff
@@ -2,29 +2,26 @@
+ // MIR for `one` after Inline
fn one() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-cycle.rs:+0:10: +0:10
- let _1: (); // in scope 0 at $DIR/inline-cycle.rs:+1:5: +1:24
-+ scope 1 (inlined <C as Call>::call) { // at $DIR/inline-cycle.rs:14:5: 14:24
-+ scope 2 (inlined <A<C> as Call>::call) { // at $DIR/inline-cycle.rs:43:9: 43:23
-+ scope 3 (inlined <B<C> as Call>::call) { // at $DIR/inline-cycle.rs:28:9: 28:31
-+ }
-+ }
+ let mut _0: (); // return place in scope 0 at $DIR/inline_cycle.rs:+0:10: +0:10
+ let _1: (); // in scope 0 at $DIR/inline_cycle.rs:+1:5: +1:24
++ scope 1 (inlined <C as Call>::call) { // at $DIR/inline_cycle.rs:14:5: 14:24
+ }
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-cycle.rs:+1:5: +1:24
-- _1 = <C as Call>::call() -> bb1; // scope 0 at $DIR/inline-cycle.rs:+1:5: +1:24
-+ _1 = <C as Call>::call() -> bb1; // scope 3 at $DIR/inline-cycle.rs:36:9: 36:28
+ StorageLive(_1); // scope 0 at $DIR/inline_cycle.rs:+1:5: +1:24
+- _1 = <C as Call>::call() -> bb1; // scope 0 at $DIR/inline_cycle.rs:+1:5: +1:24
++ _1 = <A<C> as Call>::call() -> bb1; // scope 1 at $DIR/inline_cycle.rs:43:9: 43:23
// mir::Constant
-- // + span: $DIR/inline-cycle.rs:14:5: 14:22
-+ // + span: $DIR/inline-cycle.rs:36:9: 36:26
- // + literal: Const { ty: fn() {<C as Call>::call}, val: Value(<ZST>) }
+- // + span: $DIR/inline_cycle.rs:14:5: 14:22
+- // + literal: Const { ty: fn() {<C as Call>::call}, val: Value(<ZST>) }
++ // + span: $DIR/inline_cycle.rs:43:9: 43:21
++ // + literal: Const { ty: fn() {<A<C> as Call>::call}, val: Value(<ZST>) }
}
bb1: {
- StorageDead(_1); // scope 0 at $DIR/inline-cycle.rs:+1:24: +1:25
- _0 = const (); // scope 0 at $DIR/inline-cycle.rs:+0:10: +2:2
- return; // scope 0 at $DIR/inline-cycle.rs:+2:2: +2:2
+ StorageDead(_1); // scope 0 at $DIR/inline_cycle.rs:+1:24: +1:25
+ _0 = const (); // scope 0 at $DIR/inline_cycle.rs:+0:10: +2:2
+ return; // scope 0 at $DIR/inline_cycle.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/inline-cycle.rs b/src/test/mir-opt/inline/inline_cycle.rs
index 63ad57de1..63ad57de1 100644
--- a/src/test/mir-opt/inline/inline-cycle.rs
+++ b/src/test/mir-opt/inline/inline_cycle.rs
diff --git a/src/test/mir-opt/inline/inline_cycle.two.Inline.diff b/src/test/mir-opt/inline/inline_cycle.two.Inline.diff
index b1a5b62ef..a940848c2 100644
--- a/src/test/mir-opt/inline/inline_cycle.two.Inline.diff
+++ b/src/test/mir-opt/inline/inline_cycle.two.Inline.diff
@@ -2,54 +2,41 @@
+ // MIR for `two` after Inline
fn two() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-cycle.rs:+0:10: +0:10
- let _1: (); // in scope 0 at $DIR/inline-cycle.rs:+1:5: +1:12
-+ let mut _2: fn() {f}; // in scope 0 at $DIR/inline-cycle.rs:+1:5: +1:12
-+ scope 1 (inlined call::<fn() {f}>) { // at $DIR/inline-cycle.rs:49:5: 49:12
-+ debug f => _2; // in scope 1 at $DIR/inline-cycle.rs:53:22: 53:23
-+ let _3: (); // in scope 1 at $DIR/inline-cycle.rs:54:5: 54:8
-+ let mut _4: fn() {f}; // in scope 1 at $DIR/inline-cycle.rs:54:5: 54:6
-+ let mut _5: (); // in scope 1 at $DIR/inline-cycle.rs:54:5: 54:8
-+ scope 2 (inlined <fn() {f} as FnOnce<()>>::call_once - shim(fn() {f})) { // at $DIR/inline-cycle.rs:54:5: 54:8
-+ scope 3 (inlined f) { // at $SRC_DIR/core/src/ops/function.rs:LL:COL
-+ let _6: (); // in scope 3 at $DIR/inline-cycle.rs:59:5: 59:12
-+ }
-+ }
+ let mut _0: (); // return place in scope 0 at $DIR/inline_cycle.rs:+0:10: +0:10
+ let _1: (); // in scope 0 at $DIR/inline_cycle.rs:+1:5: +1:12
++ let mut _2: fn() {f}; // in scope 0 at $DIR/inline_cycle.rs:+1:5: +1:12
++ scope 1 (inlined call::<fn() {f}>) { // at $DIR/inline_cycle.rs:49:5: 49:12
++ debug f => _2; // in scope 1 at $DIR/inline_cycle.rs:53:22: 53:23
++ let _3: (); // in scope 1 at $DIR/inline_cycle.rs:54:5: 54:8
++ let mut _4: (); // in scope 1 at $DIR/inline_cycle.rs:54:5: 54:8
+ }
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-cycle.rs:+1:5: +1:12
-- _1 = call::<fn() {f}>(f) -> bb1; // scope 0 at $DIR/inline-cycle.rs:+1:5: +1:12
-+ StorageLive(_2); // scope 0 at $DIR/inline-cycle.rs:+1:5: +1:12
-+ _2 = f; // scope 0 at $DIR/inline-cycle.rs:+1:5: +1:12
+ StorageLive(_1); // scope 0 at $DIR/inline_cycle.rs:+1:5: +1:12
+- _1 = call::<fn() {f}>(f) -> bb1; // scope 0 at $DIR/inline_cycle.rs:+1:5: +1:12
++ StorageLive(_2); // scope 0 at $DIR/inline_cycle.rs:+1:5: +1:12
++ _2 = f; // scope 0 at $DIR/inline_cycle.rs:+1:5: +1:12
// mir::Constant
-- // + span: $DIR/inline-cycle.rs:49:5: 49:9
-+ // + span: $DIR/inline-cycle.rs:49:10: 49:11
-+ // + literal: Const { ty: fn() {f}, val: Value(<ZST>) }
-+ StorageLive(_3); // scope 1 at $DIR/inline-cycle.rs:54:5: 54:8
-+ StorageLive(_4); // scope 1 at $DIR/inline-cycle.rs:54:5: 54:6
-+ _4 = move _2; // scope 1 at $DIR/inline-cycle.rs:54:5: 54:6
-+ StorageLive(_5); // scope 1 at $DIR/inline-cycle.rs:54:5: 54:8
-+ StorageLive(_6); // scope 3 at $DIR/inline-cycle.rs:59:5: 59:12
-+ _6 = call::<fn() {f}>(f) -> bb1; // scope 3 at $DIR/inline-cycle.rs:59:5: 59:12
-+ // mir::Constant
-+ // + span: $DIR/inline-cycle.rs:59:5: 59:9
- // + literal: Const { ty: fn(fn() {f}) {call::<fn() {f}>}, val: Value(<ZST>) }
- // mir::Constant
-- // + span: $DIR/inline-cycle.rs:49:10: 49:11
-+ // + span: $DIR/inline-cycle.rs:59:10: 59:11
+- // + span: $DIR/inline_cycle.rs:49:5: 49:9
+- // + literal: Const { ty: fn(fn() {f}) {call::<fn() {f}>}, val: Value(<ZST>) }
+- // mir::Constant
+ // + span: $DIR/inline_cycle.rs:49:10: 49:11
// + literal: Const { ty: fn() {f}, val: Value(<ZST>) }
++ StorageLive(_3); // scope 1 at $DIR/inline_cycle.rs:54:5: 54:8
++ StorageLive(_4); // scope 1 at $DIR/inline_cycle.rs:54:5: 54:8
++ _3 = <fn() {f} as FnOnce<()>>::call_once(move _2, move _4) -> bb1; // scope 1 at $DIR/inline_cycle.rs:54:5: 54:8
++ // mir::Constant
++ // + span: $DIR/inline_cycle.rs:54:5: 54:6
++ // + literal: Const { ty: extern "rust-call" fn(fn() {f}, ()) -> <fn() {f} as FnOnce<()>>::Output {<fn() {f} as FnOnce<()>>::call_once}, val: Value(<ZST>) }
}
bb1: {
-+ StorageDead(_6); // scope 3 at $DIR/inline-cycle.rs:59:12: 59:13
-+ StorageDead(_5); // scope 1 at $DIR/inline-cycle.rs:54:7: 54:8
-+ StorageDead(_4); // scope 1 at $DIR/inline-cycle.rs:54:7: 54:8
-+ StorageDead(_3); // scope 1 at $DIR/inline-cycle.rs:54:8: 54:9
-+ StorageDead(_2); // scope 0 at $DIR/inline-cycle.rs:+1:5: +1:12
- StorageDead(_1); // scope 0 at $DIR/inline-cycle.rs:+1:12: +1:13
- _0 = const (); // scope 0 at $DIR/inline-cycle.rs:+0:10: +2:2
- return; // scope 0 at $DIR/inline-cycle.rs:+2:2: +2:2
++ StorageDead(_4); // scope 1 at $DIR/inline_cycle.rs:54:7: 54:8
++ StorageDead(_3); // scope 1 at $DIR/inline_cycle.rs:54:8: 54:9
++ StorageDead(_2); // scope 0 at $DIR/inline_cycle.rs:+1:5: +1:12
+ StorageDead(_1); // scope 0 at $DIR/inline_cycle.rs:+1:12: +1:13
+ _0 = const (); // scope 0 at $DIR/inline_cycle.rs:+0:10: +2:2
+ return; // scope 0 at $DIR/inline_cycle.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/inline_cycle_generic.main.Inline.diff b/src/test/mir-opt/inline/inline_cycle_generic.main.Inline.diff
index fc5d57ce8..04de3e61e 100644
--- a/src/test/mir-opt/inline/inline_cycle_generic.main.Inline.diff
+++ b/src/test/mir-opt/inline/inline_cycle_generic.main.Inline.diff
@@ -2,31 +2,28 @@
+ // MIR for `main` after Inline
fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-cycle-generic.rs:+0:11: +0:11
- let _1: (); // in scope 0 at $DIR/inline-cycle-generic.rs:+1:5: +1:24
-+ scope 1 (inlined <C as Call>::call) { // at $DIR/inline-cycle-generic.rs:9:5: 9:24
-+ scope 2 (inlined <B<A> as Call>::call) { // at $DIR/inline-cycle-generic.rs:38:9: 38:31
-+ scope 3 (inlined <A as Call>::call) { // at $DIR/inline-cycle-generic.rs:31:9: 31:28
-+ scope 4 (inlined <B<C> as Call>::call) { // at $DIR/inline-cycle-generic.rs:23:9: 23:31
-+ }
-+ }
+ let mut _0: (); // return place in scope 0 at $DIR/inline_cycle_generic.rs:+0:11: +0:11
+ let _1: (); // in scope 0 at $DIR/inline_cycle_generic.rs:+1:5: +1:24
++ scope 1 (inlined <C as Call>::call) { // at $DIR/inline_cycle_generic.rs:9:5: 9:24
++ scope 2 (inlined <B<A> as Call>::call) { // at $DIR/inline_cycle_generic.rs:38:9: 38:31
+ }
+ }
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-cycle-generic.rs:+1:5: +1:24
-- _1 = <C as Call>::call() -> bb1; // scope 0 at $DIR/inline-cycle-generic.rs:+1:5: +1:24
-+ _1 = <C as Call>::call() -> bb1; // scope 4 at $DIR/inline-cycle-generic.rs:31:9: 31:28
+ StorageLive(_1); // scope 0 at $DIR/inline_cycle_generic.rs:+1:5: +1:24
+- _1 = <C as Call>::call() -> bb1; // scope 0 at $DIR/inline_cycle_generic.rs:+1:5: +1:24
++ _1 = <A as Call>::call() -> bb1; // scope 2 at $DIR/inline_cycle_generic.rs:31:9: 31:28
// mir::Constant
-- // + span: $DIR/inline-cycle-generic.rs:9:5: 9:22
-+ // + span: $DIR/inline-cycle-generic.rs:31:9: 31:26
- // + literal: Const { ty: fn() {<C as Call>::call}, val: Value(<ZST>) }
+- // + span: $DIR/inline_cycle_generic.rs:9:5: 9:22
+- // + literal: Const { ty: fn() {<C as Call>::call}, val: Value(<ZST>) }
++ // + span: $DIR/inline_cycle_generic.rs:31:9: 31:26
++ // + literal: Const { ty: fn() {<A as Call>::call}, val: Value(<ZST>) }
}
bb1: {
- StorageDead(_1); // scope 0 at $DIR/inline-cycle-generic.rs:+1:24: +1:25
- _0 = const (); // scope 0 at $DIR/inline-cycle-generic.rs:+0:11: +2:2
- return; // scope 0 at $DIR/inline-cycle-generic.rs:+2:2: +2:2
+ StorageDead(_1); // scope 0 at $DIR/inline_cycle_generic.rs:+1:24: +1:25
+ _0 = const (); // scope 0 at $DIR/inline_cycle_generic.rs:+0:11: +2:2
+ return; // scope 0 at $DIR/inline_cycle_generic.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/inline-cycle-generic.rs b/src/test/mir-opt/inline/inline_cycle_generic.rs
index 24b4f3793..24b4f3793 100644
--- a/src/test/mir-opt/inline/inline-cycle-generic.rs
+++ b/src/test/mir-opt/inline/inline_cycle_generic.rs
diff --git a/src/test/mir-opt/inline/inline_diverging.f.Inline.diff b/src/test/mir-opt/inline/inline_diverging.f.Inline.diff
index cef4cfc67..b49191f49 100644
--- a/src/test/mir-opt/inline/inline_diverging.f.Inline.diff
+++ b/src/test/mir-opt/inline/inline_diverging.f.Inline.diff
@@ -2,23 +2,23 @@
+ // MIR for `f` after Inline
fn f() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-diverging.rs:+0:12: +0:12
- let mut _1: !; // in scope 0 at $DIR/inline-diverging.rs:+0:12: +2:2
- let _2: !; // in scope 0 at $DIR/inline-diverging.rs:+1:5: +1:12
-+ scope 1 (inlined sleep) { // at $DIR/inline-diverging.rs:8:5: 8:12
+ let mut _0: (); // return place in scope 0 at $DIR/inline_diverging.rs:+0:12: +0:12
+ let mut _1: !; // in scope 0 at $DIR/inline_diverging.rs:+0:12: +2:2
+ let _2: !; // in scope 0 at $DIR/inline_diverging.rs:+1:5: +1:12
++ scope 1 (inlined sleep) { // at $DIR/inline_diverging.rs:8:5: 8:12
+ }
bb0: {
- StorageLive(_2); // scope 0 at $DIR/inline-diverging.rs:+1:5: +1:12
-- _2 = sleep(); // scope 0 at $DIR/inline-diverging.rs:+1:5: +1:12
+ StorageLive(_2); // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:12
+- _2 = sleep(); // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:12
- // mir::Constant
-- // + span: $DIR/inline-diverging.rs:8:5: 8:10
+- // + span: $DIR/inline_diverging.rs:8:5: 8:10
- // + literal: Const { ty: fn() -> ! {sleep}, val: Value(<ZST>) }
-+ goto -> bb1; // scope 0 at $DIR/inline-diverging.rs:+1:5: +1:12
++ goto -> bb1; // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:12
+ }
+
+ bb1: {
-+ goto -> bb1; // scope 1 at $DIR/inline-diverging.rs:39:5: 39:12
++ goto -> bb1; // scope 1 at $DIR/inline_diverging.rs:39:5: 39:12
}
}
diff --git a/src/test/mir-opt/inline/inline_diverging.g.Inline.diff b/src/test/mir-opt/inline/inline_diverging.g.Inline.diff
index a71baad3e..1e703a8fd 100644
--- a/src/test/mir-opt/inline/inline_diverging.g.Inline.diff
+++ b/src/test/mir-opt/inline/inline_diverging.g.Inline.diff
@@ -2,42 +2,42 @@
+ // MIR for `g` after Inline
fn g(_1: i32) -> u32 {
- debug i => _1; // in scope 0 at $DIR/inline-diverging.rs:+0:10: +0:11
- let mut _0: u32; // return place in scope 0 at $DIR/inline-diverging.rs:+0:21: +0:24
- let mut _2: bool; // in scope 0 at $DIR/inline-diverging.rs:+1:8: +1:13
- let mut _3: i32; // in scope 0 at $DIR/inline-diverging.rs:+1:8: +1:9
- let mut _4: i32; // in scope 0 at $DIR/inline-diverging.rs:+2:9: +2:10
- let mut _5: !; // in scope 0 at $DIR/inline-diverging.rs:+3:12: +5:6
- let _6: !; // in scope 0 at $DIR/inline-diverging.rs:+4:9: +4:16
-+ scope 1 (inlined panic) { // at $DIR/inline-diverging.rs:16:9: 16:16
+ debug i => _1; // in scope 0 at $DIR/inline_diverging.rs:+0:10: +0:11
+ let mut _0: u32; // return place in scope 0 at $DIR/inline_diverging.rs:+0:21: +0:24
+ let mut _2: bool; // in scope 0 at $DIR/inline_diverging.rs:+1:8: +1:13
+ let mut _3: i32; // in scope 0 at $DIR/inline_diverging.rs:+1:8: +1:9
+ let mut _4: i32; // in scope 0 at $DIR/inline_diverging.rs:+2:9: +2:10
+ let mut _5: !; // in scope 0 at $DIR/inline_diverging.rs:+3:12: +5:6
+ let _6: !; // in scope 0 at $DIR/inline_diverging.rs:+4:9: +4:16
++ scope 1 (inlined panic) { // at $DIR/inline_diverging.rs:16:9: 16:16
+ let mut _7: !; // in scope 1 at $SRC_DIR/std/src/panic.rs:LL:COL
+ }
bb0: {
- StorageLive(_2); // scope 0 at $DIR/inline-diverging.rs:+1:8: +1:13
- StorageLive(_3); // scope 0 at $DIR/inline-diverging.rs:+1:8: +1:9
- _3 = _1; // scope 0 at $DIR/inline-diverging.rs:+1:8: +1:9
- _2 = Gt(move _3, const 0_i32); // scope 0 at $DIR/inline-diverging.rs:+1:8: +1:13
- StorageDead(_3); // scope 0 at $DIR/inline-diverging.rs:+1:12: +1:13
- switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/inline-diverging.rs:+1:8: +1:13
+ StorageLive(_2); // scope 0 at $DIR/inline_diverging.rs:+1:8: +1:13
+ StorageLive(_3); // scope 0 at $DIR/inline_diverging.rs:+1:8: +1:9
+ _3 = _1; // scope 0 at $DIR/inline_diverging.rs:+1:8: +1:9
+ _2 = Gt(move _3, const 0_i32); // scope 0 at $DIR/inline_diverging.rs:+1:8: +1:13
+ StorageDead(_3); // scope 0 at $DIR/inline_diverging.rs:+1:12: +1:13
+ switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/inline_diverging.rs:+1:8: +1:13
}
bb1: {
- StorageLive(_4); // scope 0 at $DIR/inline-diverging.rs:+2:9: +2:10
- _4 = _1; // scope 0 at $DIR/inline-diverging.rs:+2:9: +2:10
- _0 = move _4 as u32 (IntToInt); // scope 0 at $DIR/inline-diverging.rs:+2:9: +2:17
- StorageDead(_4); // scope 0 at $DIR/inline-diverging.rs:+2:16: +2:17
- StorageDead(_2); // scope 0 at $DIR/inline-diverging.rs:+5:5: +5:6
- return; // scope 0 at $DIR/inline-diverging.rs:+6:2: +6:2
+ StorageLive(_4); // scope 0 at $DIR/inline_diverging.rs:+2:9: +2:10
+ _4 = _1; // scope 0 at $DIR/inline_diverging.rs:+2:9: +2:10
+ _0 = move _4 as u32 (IntToInt); // scope 0 at $DIR/inline_diverging.rs:+2:9: +2:17
+ StorageDead(_4); // scope 0 at $DIR/inline_diverging.rs:+2:16: +2:17
+ StorageDead(_2); // scope 0 at $DIR/inline_diverging.rs:+5:5: +5:6
+ return; // scope 0 at $DIR/inline_diverging.rs:+6:2: +6:2
}
bb2: {
- StorageLive(_6); // scope 0 at $DIR/inline-diverging.rs:+4:9: +4:16
-- _6 = panic(); // scope 0 at $DIR/inline-diverging.rs:+4:9: +4:16
+ StorageLive(_6); // scope 0 at $DIR/inline_diverging.rs:+4:9: +4:16
+- _6 = panic(); // scope 0 at $DIR/inline_diverging.rs:+4:9: +4:16
+ StorageLive(_7); // scope 1 at $SRC_DIR/std/src/panic.rs:LL:COL
+ _7 = begin_panic::<&str>(const "explicit panic"); // scope 1 at $SRC_DIR/std/src/panic.rs:LL:COL
// mir::Constant
-- // + span: $DIR/inline-diverging.rs:16:9: 16:14
+- // + span: $DIR/inline_diverging.rs:16:9: 16:14
- // + literal: Const { ty: fn() -> ! {panic}, val: Value(<ZST>) }
+ // + span: $SRC_DIR/std/src/panic.rs:LL:COL
+ // + literal: Const { ty: fn(&str) -> ! {begin_panic::<&str>}, val: Value(<ZST>) }
diff --git a/src/test/mir-opt/inline/inline_diverging.h.Inline.diff b/src/test/mir-opt/inline/inline_diverging.h.Inline.diff
index 6569ab24c..a01bcf164 100644
--- a/src/test/mir-opt/inline/inline_diverging.h.Inline.diff
+++ b/src/test/mir-opt/inline/inline_diverging.h.Inline.diff
@@ -2,55 +2,87 @@
+ // MIR for `h` after Inline
fn h() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-diverging.rs:+0:12: +0:12
- let _1: (!, !); // in scope 0 at $DIR/inline-diverging.rs:+1:5: +1:22
-+ let mut _2: fn() -> ! {sleep}; // in scope 0 at $DIR/inline-diverging.rs:+1:5: +1:22
-+ scope 1 (inlined call_twice::<!, fn() -> ! {sleep}>) { // at $DIR/inline-diverging.rs:22:5: 22:22
-+ debug f => _2; // in scope 1 at $DIR/inline-diverging.rs:26:36: 26:37
-+ let _3: !; // in scope 1 at $DIR/inline-diverging.rs:27:9: 27:10
-+ let mut _4: &fn() -> ! {sleep}; // in scope 1 at $DIR/inline-diverging.rs:27:13: 27:14
-+ let mut _5: (); // in scope 1 at $DIR/inline-diverging.rs:27:13: 27:16
-+ let mut _7: &fn() -> ! {sleep}; // in scope 1 at $DIR/inline-diverging.rs:28:13: 28:14
-+ let mut _8: (); // in scope 1 at $DIR/inline-diverging.rs:28:13: 28:16
-+ let mut _9: !; // in scope 1 at $DIR/inline-diverging.rs:29:6: 29:7
-+ let mut _10: !; // in scope 1 at $DIR/inline-diverging.rs:29:9: 29:10
+ let mut _0: (); // return place in scope 0 at $DIR/inline_diverging.rs:+0:12: +0:12
+ let _1: (!, !); // in scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
++ let mut _2: fn() -> ! {sleep}; // in scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
++ scope 1 (inlined call_twice::<!, fn() -> ! {sleep}>) { // at $DIR/inline_diverging.rs:22:5: 22:22
++ debug f => _2; // in scope 1 at $DIR/inline_diverging.rs:26:36: 26:37
++ let _3: !; // in scope 1 at $DIR/inline_diverging.rs:27:9: 27:10
++ let mut _4: &fn() -> ! {sleep}; // in scope 1 at $DIR/inline_diverging.rs:27:13: 27:14
++ let mut _5: (); // in scope 1 at $DIR/inline_diverging.rs:27:13: 27:16
++ let mut _6: &fn() -> ! {sleep}; // in scope 1 at $DIR/inline_diverging.rs:28:13: 28:14
++ let mut _7: (); // in scope 1 at $DIR/inline_diverging.rs:28:13: 28:16
++ let mut _8: !; // in scope 1 at $DIR/inline_diverging.rs:29:6: 29:7
++ let mut _9: !; // in scope 1 at $DIR/inline_diverging.rs:29:9: 29:10
+ scope 2 {
-+ debug a => _3; // in scope 2 at $DIR/inline-diverging.rs:27:9: 27:10
-+ let _6: !; // in scope 2 at $DIR/inline-diverging.rs:28:9: 28:10
++ debug a => _3; // in scope 2 at $DIR/inline_diverging.rs:27:9: 27:10
+ scope 3 {
-+ debug b => _6; // in scope 3 at $DIR/inline-diverging.rs:28:9: 28:10
-+ }
-+ scope 6 (inlined <fn() -> ! {sleep} as Fn<()>>::call - shim(fn() -> ! {sleep})) { // at $DIR/inline-diverging.rs:28:13: 28:16
-+ scope 7 (inlined sleep) { // at $SRC_DIR/core/src/ops/function.rs:LL:COL
-+ }
-+ }
-+ }
-+ scope 4 (inlined <fn() -> ! {sleep} as Fn<()>>::call - shim(fn() -> ! {sleep})) { // at $DIR/inline-diverging.rs:27:13: 27:16
-+ scope 5 (inlined sleep) { // at $SRC_DIR/core/src/ops/function.rs:LL:COL
++ debug b => _9; // in scope 3 at $DIR/inline_diverging.rs:28:9: 28:10
+ }
+ }
+ }
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-diverging.rs:+1:5: +1:22
-- _1 = call_twice::<!, fn() -> ! {sleep}>(sleep); // scope 0 at $DIR/inline-diverging.rs:+1:5: +1:22
-+ StorageLive(_2); // scope 0 at $DIR/inline-diverging.rs:+1:5: +1:22
-+ _2 = sleep; // scope 0 at $DIR/inline-diverging.rs:+1:5: +1:22
+ StorageLive(_1); // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
+- _1 = call_twice::<!, fn() -> ! {sleep}>(sleep); // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
++ StorageLive(_2); // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
++ _2 = sleep; // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
// mir::Constant
-- // + span: $DIR/inline-diverging.rs:22:5: 22:15
+- // + span: $DIR/inline_diverging.rs:22:5: 22:15
- // + literal: Const { ty: fn(fn() -> ! {sleep}) -> (!, !) {call_twice::<!, fn() -> ! {sleep}>}, val: Value(<ZST>) }
- // mir::Constant
- // + span: $DIR/inline-diverging.rs:22:16: 22:21
+ // + span: $DIR/inline_diverging.rs:22:16: 22:21
// + literal: Const { ty: fn() -> ! {sleep}, val: Value(<ZST>) }
-+ StorageLive(_3); // scope 1 at $DIR/inline-diverging.rs:27:9: 27:10
-+ StorageLive(_4); // scope 1 at $DIR/inline-diverging.rs:27:13: 27:14
-+ _4 = &_2; // scope 1 at $DIR/inline-diverging.rs:27:13: 27:14
-+ StorageLive(_5); // scope 1 at $DIR/inline-diverging.rs:27:13: 27:16
-+ goto -> bb1; // scope 5 at $DIR/inline-diverging.rs:39:5: 39:12
++ StorageLive(_9); // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
++ StorageLive(_3); // scope 1 at $DIR/inline_diverging.rs:27:9: 27:10
++ StorageLive(_4); // scope 1 at $DIR/inline_diverging.rs:27:13: 27:14
++ _4 = &_2; // scope 1 at $DIR/inline_diverging.rs:27:13: 27:14
++ StorageLive(_5); // scope 1 at $DIR/inline_diverging.rs:27:13: 27:16
++ _3 = <fn() -> ! {sleep} as Fn<()>>::call(move _4, move _5) -> [return: bb1, unwind: bb5]; // scope 1 at $DIR/inline_diverging.rs:27:13: 27:16
++ // mir::Constant
++ // + span: $DIR/inline_diverging.rs:27:13: 27:14
++ // + literal: Const { ty: for<'a> extern "rust-call" fn(&'a fn() -> ! {sleep}, ()) -> <fn() -> ! {sleep} as FnOnce<()>>::Output {<fn() -> ! {sleep} as Fn<()>>::call}, val: Value(<ZST>) }
+ }
+
+ bb1: {
-+ goto -> bb1; // scope 5 at $DIR/inline-diverging.rs:39:5: 39:12
++ StorageDead(_5); // scope 1 at $DIR/inline_diverging.rs:27:15: 27:16
++ StorageDead(_4); // scope 1 at $DIR/inline_diverging.rs:27:15: 27:16
++ StorageLive(_6); // scope 2 at $DIR/inline_diverging.rs:28:13: 28:14
++ _6 = &_2; // scope 2 at $DIR/inline_diverging.rs:28:13: 28:14
++ StorageLive(_7); // scope 2 at $DIR/inline_diverging.rs:28:13: 28:16
++ _9 = <fn() -> ! {sleep} as Fn<()>>::call(move _6, move _7) -> [return: bb2, unwind: bb4]; // scope 2 at $DIR/inline_diverging.rs:28:13: 28:16
++ // mir::Constant
++ // + span: $DIR/inline_diverging.rs:28:13: 28:14
++ // + literal: Const { ty: for<'a> extern "rust-call" fn(&'a fn() -> ! {sleep}, ()) -> <fn() -> ! {sleep} as FnOnce<()>>::Output {<fn() -> ! {sleep} as Fn<()>>::call}, val: Value(<ZST>) }
++ }
++
++ bb2: {
++ StorageDead(_7); // scope 2 at $DIR/inline_diverging.rs:28:15: 28:16
++ StorageDead(_6); // scope 2 at $DIR/inline_diverging.rs:28:15: 28:16
++ StorageLive(_8); // scope 3 at $DIR/inline_diverging.rs:29:6: 29:7
++ _8 = move _3; // scope 3 at $DIR/inline_diverging.rs:29:6: 29:7
++ Deinit(_1); // scope 3 at $DIR/inline_diverging.rs:29:5: 29:11
++ (_1.0: !) = move _8; // scope 3 at $DIR/inline_diverging.rs:29:5: 29:11
++ (_1.1: !) = move _9; // scope 3 at $DIR/inline_diverging.rs:29:5: 29:11
++ StorageDead(_8); // scope 3 at $DIR/inline_diverging.rs:29:10: 29:11
++ StorageDead(_3); // scope 1 at $DIR/inline_diverging.rs:30:1: 30:2
++ drop(_2) -> bb3; // scope 1 at $DIR/inline_diverging.rs:30:1: 30:2
++ }
++
++ bb3: {
++ unreachable; // scope 0 at $DIR/inline_diverging.rs:30:2: 30:2
++ }
++
++ bb4 (cleanup): {
++ drop(_3) -> bb5; // scope 1 at $DIR/inline_diverging.rs:30:1: 30:2
++ }
++
++ bb5 (cleanup): {
++ drop(_2) -> bb6; // scope 1 at $DIR/inline_diverging.rs:30:1: 30:2
++ }
++
++ bb6 (cleanup): {
++ resume; // scope 1 at $DIR/inline_diverging.rs:26:1: 30:2
}
}
diff --git a/src/test/mir-opt/inline/inline-diverging.rs b/src/test/mir-opt/inline/inline_diverging.rs
index ae6f814c2..ae6f814c2 100644
--- a/src/test/mir-opt/inline/inline-diverging.rs
+++ b/src/test/mir-opt/inline/inline_diverging.rs
diff --git a/src/test/mir-opt/inline/inline_generator.main.Inline.diff b/src/test/mir-opt/inline/inline_generator.main.Inline.diff
index 3fd8aad72..91bff3d32 100644
--- a/src/test/mir-opt/inline/inline_generator.main.Inline.diff
+++ b/src/test/mir-opt/inline/inline_generator.main.Inline.diff
@@ -2,59 +2,56 @@
+ // MIR for `main` after Inline
fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-generator.rs:+0:11: +0:11
- let _1: std::ops::GeneratorState<i32, bool>; // in scope 0 at $DIR/inline-generator.rs:+1:9: +1:11
- let mut _2: std::pin::Pin<&mut [generator@$DIR/inline-generator.rs:15:5: 15:8]>; // in scope 0 at $DIR/inline-generator.rs:+1:14: +1:32
- let mut _3: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 0 at $DIR/inline-generator.rs:+1:23: +1:31
- let mut _4: [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 0 at $DIR/inline-generator.rs:+1:28: +1:31
-+ let mut _7: bool; // in scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
+ let mut _0: (); // return place in scope 0 at $DIR/inline_generator.rs:+0:11: +0:11
+ let _1: std::ops::GeneratorState<i32, bool>; // in scope 0 at $DIR/inline_generator.rs:+1:9: +1:11
+ let mut _2: std::pin::Pin<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>; // in scope 0 at $DIR/inline_generator.rs:+1:14: +1:32
+ let mut _3: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 0 at $DIR/inline_generator.rs:+1:23: +1:31
+ let mut _4: [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 0 at $DIR/inline_generator.rs:+1:28: +1:31
++ let mut _7: bool; // in scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
scope 1 {
- debug _r => _1; // in scope 1 at $DIR/inline-generator.rs:+1:9: +1:11
+ debug _r => _1; // in scope 1 at $DIR/inline_generator.rs:+1:9: +1:11
}
-+ scope 2 (inlined g) { // at $DIR/inline-generator.rs:9:28: 9:31
++ scope 2 (inlined g) { // at $DIR/inline_generator.rs:9:28: 9:31
+ }
-+ scope 3 (inlined Pin::<&mut [generator@$DIR/inline-generator.rs:15:5: 15:8]>::new) { // at $DIR/inline-generator.rs:9:14: 9:32
++ scope 3 (inlined Pin::<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>::new) { // at $DIR/inline_generator.rs:9:14: 9:32
+ debug pointer => _3; // in scope 3 at $SRC_DIR/core/src/pin.rs:LL:COL
-+ let mut _5: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 3 at $SRC_DIR/core/src/pin.rs:LL:COL
++ let mut _5: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 3 at $SRC_DIR/core/src/pin.rs:LL:COL
+ scope 4 {
-+ scope 5 (inlined Pin::<&mut [generator@$DIR/inline-generator.rs:15:5: 15:8]>::new_unchecked) { // at $SRC_DIR/core/src/pin.rs:LL:COL
++ scope 5 (inlined Pin::<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>::new_unchecked) { // at $SRC_DIR/core/src/pin.rs:LL:COL
+ debug pointer => _5; // in scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
-+ let mut _6: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
++ let mut _6: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ }
+ }
+ }
-+ scope 6 (inlined g::{closure#0}) { // at $DIR/inline-generator.rs:9:14: 9:46
-+ debug a => _11; // in scope 6 at $DIR/inline-generator.rs:15:6: 15:7
-+ let mut _8: i32; // in scope 6 at $DIR/inline-generator.rs:15:17: 15:39
-+ let mut _9: bool; // in scope 6 at $DIR/inline-generator.rs:15:20: 15:21
-+ let mut _10: bool; // in scope 6 at $DIR/inline-generator.rs:15:9: 15:9
-+ let _11: bool; // in scope 6 at $DIR/inline-generator.rs:15:6: 15:7
-+ let mut _12: u32; // in scope 6 at $DIR/inline-generator.rs:15:5: 15:41
-+ let mut _13: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline-generator.rs:15:5: 15:41
-+ let mut _14: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline-generator.rs:15:5: 15:41
-+ let mut _15: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline-generator.rs:15:5: 15:41
++ scope 6 (inlined g::{closure#0}) { // at $DIR/inline_generator.rs:9:14: 9:46
++ debug a => _7; // in scope 6 at $DIR/inline_generator.rs:15:6: 15:7
++ let mut _8: i32; // in scope 6 at $DIR/inline_generator.rs:15:17: 15:39
++ let mut _9: u32; // in scope 6 at $DIR/inline_generator.rs:15:5: 15:41
++ let mut _10: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline_generator.rs:15:5: 15:41
++ let mut _11: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline_generator.rs:15:5: 15:41
++ let mut _12: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline_generator.rs:15:5: 15:41
+ }
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-generator.rs:+1:9: +1:11
- StorageLive(_2); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:32
- StorageLive(_3); // scope 0 at $DIR/inline-generator.rs:+1:23: +1:31
- StorageLive(_4); // scope 0 at $DIR/inline-generator.rs:+1:28: +1:31
-- _4 = g() -> bb1; // scope 0 at $DIR/inline-generator.rs:+1:28: +1:31
+ StorageLive(_1); // scope 0 at $DIR/inline_generator.rs:+1:9: +1:11
+ StorageLive(_2); // scope 0 at $DIR/inline_generator.rs:+1:14: +1:32
+ StorageLive(_3); // scope 0 at $DIR/inline_generator.rs:+1:23: +1:31
+ StorageLive(_4); // scope 0 at $DIR/inline_generator.rs:+1:28: +1:31
+- _4 = g() -> bb1; // scope 0 at $DIR/inline_generator.rs:+1:28: +1:31
- // mir::Constant
-- // + span: $DIR/inline-generator.rs:9:28: 9:29
+- // + span: $DIR/inline_generator.rs:9:28: 9:29
- // + literal: Const { ty: fn() -> impl Generator<bool> {g}, val: Value(<ZST>) }
- }
-
- bb1: {
-+ Deinit(_4); // scope 2 at $DIR/inline-generator.rs:15:5: 15:41
-+ discriminant(_4) = 0; // scope 2 at $DIR/inline-generator.rs:15:5: 15:41
- _3 = &mut _4; // scope 0 at $DIR/inline-generator.rs:+1:23: +1:31
-- _2 = Pin::<&mut [generator@$DIR/inline-generator.rs:15:5: 15:8]>::new(move _3) -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/inline-generator.rs:+1:14: +1:32
++ Deinit(_4); // scope 2 at $DIR/inline_generator.rs:15:5: 15:41
++ discriminant(_4) = 0; // scope 2 at $DIR/inline_generator.rs:15:5: 15:41
+ _3 = &mut _4; // scope 0 at $DIR/inline_generator.rs:+1:23: +1:31
+- _2 = Pin::<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>::new(move _3) -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/inline_generator.rs:+1:14: +1:32
- // mir::Constant
-- // + span: $DIR/inline-generator.rs:9:14: 9:22
+- // + span: $DIR/inline_generator.rs:9:14: 9:22
- // + user_ty: UserType(0)
-- // + literal: Const { ty: fn(&mut [generator@$DIR/inline-generator.rs:15:5: 15:8]) -> Pin<&mut [generator@$DIR/inline-generator.rs:15:5: 15:8]> {Pin::<&mut [generator@$DIR/inline-generator.rs:15:5: 15:8]>::new}, val: Value(<ZST>) }
+- // + literal: Const { ty: fn(&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]) -> Pin<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]> {Pin::<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>::new}, val: Value(<ZST>) }
- }
-
- bb2: {
@@ -63,86 +60,77 @@
+ StorageLive(_6); // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ _6 = move _5; // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ Deinit(_2); // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
-+ (_2.0: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]) = move _6; // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
++ (_2.0: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]) = move _6; // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ StorageDead(_6); // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ StorageDead(_5); // scope 4 at $SRC_DIR/core/src/pin.rs:LL:COL
- StorageDead(_3); // scope 0 at $DIR/inline-generator.rs:+1:31: +1:32
-- _1 = <[generator@$DIR/inline-generator.rs:15:5: 15:8] as Generator<bool>>::resume(move _2, const false) -> [return: bb3, unwind: bb4]; // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
+ StorageDead(_3); // scope 0 at $DIR/inline_generator.rs:+1:31: +1:32
+- _1 = <[generator@$DIR/inline_generator.rs:15:5: 15:8] as Generator<bool>>::resume(move _2, const false) -> [return: bb3, unwind: bb4]; // scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
- // mir::Constant
-- // + span: $DIR/inline-generator.rs:9:33: 9:39
-- // + literal: Const { ty: for<'a> fn(Pin<&'a mut [generator@$DIR/inline-generator.rs:15:5: 15:8]>, bool) -> GeneratorState<<[generator@$DIR/inline-generator.rs:15:5: 15:8] as Generator<bool>>::Yield, <[generator@$DIR/inline-generator.rs:15:5: 15:8] as Generator<bool>>::Return> {<[generator@$DIR/inline-generator.rs:15:5: 15:8] as Generator<bool>>::resume}, val: Value(<ZST>) }
-+ StorageLive(_7); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
-+ _7 = const false; // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
-+ StorageLive(_10); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
-+ StorageLive(_11); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
-+ _13 = deref_copy (_2.0: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]); // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
-+ _12 = discriminant((*_13)); // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
-+ switchInt(move _12) -> [0_u32: bb3, 1_u32: bb8, 3_u32: bb7, otherwise: bb9]; // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
+- // + span: $DIR/inline_generator.rs:9:33: 9:39
+- // + literal: Const { ty: for<'a> fn(Pin<&'a mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>, bool) -> GeneratorState<<[generator@$DIR/inline_generator.rs:15:5: 15:8] as Generator<bool>>::Yield, <[generator@$DIR/inline_generator.rs:15:5: 15:8] as Generator<bool>>::Return> {<[generator@$DIR/inline_generator.rs:15:5: 15:8] as Generator<bool>>::resume}, val: Value(<ZST>) }
++ StorageLive(_7); // scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
++ _7 = const false; // scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
++ _10 = deref_copy (_2.0: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]); // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
++ _9 = discriminant((*_10)); // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
++ switchInt(move _9) -> [0_u32: bb3, 1_u32: bb8, 3_u32: bb7, otherwise: bb9]; // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
}
- bb3: {
+ bb1: {
-+ StorageDead(_11); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
-+ StorageDead(_10); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
-+ StorageDead(_7); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
- StorageDead(_2); // scope 0 at $DIR/inline-generator.rs:+1:45: +1:46
- StorageDead(_4); // scope 0 at $DIR/inline-generator.rs:+1:46: +1:47
- _0 = const (); // scope 0 at $DIR/inline-generator.rs:+0:11: +2:2
- StorageDead(_1); // scope 0 at $DIR/inline-generator.rs:+2:1: +2:2
- return; // scope 0 at $DIR/inline-generator.rs:+2:2: +2:2
++ StorageDead(_7); // scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
+ StorageDead(_2); // scope 0 at $DIR/inline_generator.rs:+1:45: +1:46
+ StorageDead(_4); // scope 0 at $DIR/inline_generator.rs:+1:46: +1:47
+ _0 = const (); // scope 0 at $DIR/inline_generator.rs:+0:11: +2:2
+ StorageDead(_1); // scope 0 at $DIR/inline_generator.rs:+2:1: +2:2
+ return; // scope 0 at $DIR/inline_generator.rs:+2:2: +2:2
}
- bb4 (cleanup): {
+ bb2 (cleanup): {
- resume; // scope 0 at $DIR/inline-generator.rs:+0:1: +2:2
+ resume; // scope 0 at $DIR/inline_generator.rs:+0:1: +2:2
+ }
+
+ bb3: {
-+ _11 = move _7; // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
-+ StorageLive(_8); // scope 6 at $DIR/inline-generator.rs:15:17: 15:39
-+ StorageLive(_9); // scope 6 at $DIR/inline-generator.rs:15:20: 15:21
-+ _9 = _11; // scope 6 at $DIR/inline-generator.rs:15:20: 15:21
-+ switchInt(move _9) -> [false: bb5, otherwise: bb4]; // scope 6 at $DIR/inline-generator.rs:15:20: 15:21
++ StorageLive(_8); // scope 6 at $DIR/inline_generator.rs:15:17: 15:39
++ switchInt(move _7) -> [false: bb5, otherwise: bb4]; // scope 6 at $DIR/inline_generator.rs:15:20: 15:21
+ }
+
+ bb4: {
-+ _8 = const 7_i32; // scope 6 at $DIR/inline-generator.rs:15:24: 15:25
-+ goto -> bb6; // scope 6 at $DIR/inline-generator.rs:15:17: 15:39
++ _8 = const 7_i32; // scope 6 at $DIR/inline_generator.rs:15:24: 15:25
++ goto -> bb6; // scope 6 at $DIR/inline_generator.rs:15:17: 15:39
+ }
+
+ bb5: {
-+ _8 = const 13_i32; // scope 6 at $DIR/inline-generator.rs:15:35: 15:37
-+ goto -> bb6; // scope 6 at $DIR/inline-generator.rs:15:17: 15:39
++ _8 = const 13_i32; // scope 6 at $DIR/inline_generator.rs:15:35: 15:37
++ goto -> bb6; // scope 6 at $DIR/inline_generator.rs:15:17: 15:39
+ }
+
+ bb6: {
-+ StorageDead(_9); // scope 6 at $DIR/inline-generator.rs:15:38: 15:39
-+ Deinit(_1); // scope 6 at $DIR/inline-generator.rs:15:11: 15:39
-+ ((_1 as Yielded).0: i32) = move _8; // scope 6 at $DIR/inline-generator.rs:15:11: 15:39
-+ discriminant(_1) = 0; // scope 6 at $DIR/inline-generator.rs:15:11: 15:39
-+ _14 = deref_copy (_2.0: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]); // scope 6 at $DIR/inline-generator.rs:15:11: 15:39
-+ discriminant((*_14)) = 3; // scope 6 at $DIR/inline-generator.rs:15:11: 15:39
-+ goto -> bb1; // scope 0 at $DIR/inline-generator.rs:15:11: 15:39
++ Deinit(_1); // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
++ ((_1 as Yielded).0: i32) = move _8; // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
++ discriminant(_1) = 0; // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
++ _11 = deref_copy (_2.0: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]); // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
++ discriminant((*_11)) = 3; // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
++ goto -> bb1; // scope 0 at $DIR/inline_generator.rs:15:11: 15:39
+ }
+
+ bb7: {
-+ StorageLive(_8); // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
-+ _10 = move _7; // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
-+ StorageDead(_8); // scope 6 at $DIR/inline-generator.rs:15:38: 15:39
-+ Deinit(_1); // scope 6 at $DIR/inline-generator.rs:15:41: 15:41
-+ ((_1 as Complete).0: bool) = move _10; // scope 6 at $DIR/inline-generator.rs:15:41: 15:41
-+ discriminant(_1) = 1; // scope 6 at $DIR/inline-generator.rs:15:41: 15:41
-+ _15 = deref_copy (_2.0: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]); // scope 6 at $DIR/inline-generator.rs:15:41: 15:41
-+ discriminant((*_15)) = 1; // scope 6 at $DIR/inline-generator.rs:15:41: 15:41
-+ goto -> bb1; // scope 0 at $DIR/inline-generator.rs:15:41: 15:41
++ StorageLive(_8); // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
++ StorageDead(_8); // scope 6 at $DIR/inline_generator.rs:15:38: 15:39
++ Deinit(_1); // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
++ ((_1 as Complete).0: bool) = move _7; // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
++ discriminant(_1) = 1; // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
++ _12 = deref_copy (_2.0: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]); // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
++ discriminant((*_12)) = 1; // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
++ goto -> bb1; // scope 0 at $DIR/inline_generator.rs:15:41: 15:41
+ }
+
+ bb8: {
-+ assert(const false, "generator resumed after completion") -> [success: bb8, unwind: bb2]; // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
++ assert(const false, "generator resumed after completion") -> [success: bb8, unwind: bb2]; // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
+ }
+
+ bb9: {
-+ unreachable; // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
++ unreachable; // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
}
}
diff --git a/src/test/mir-opt/inline/inline-generator.rs b/src/test/mir-opt/inline/inline_generator.rs
index d11b3e548..d11b3e548 100644
--- a/src/test/mir-opt/inline/inline-generator.rs
+++ b/src/test/mir-opt/inline/inline_generator.rs
diff --git a/src/test/mir-opt/inline/inline_instruction_set.default.Inline.diff b/src/test/mir-opt/inline/inline_instruction_set.default.Inline.diff
index 076509df3..f1988ea4b 100644
--- a/src/test/mir-opt/inline/inline_instruction_set.default.Inline.diff
+++ b/src/test/mir-opt/inline/inline_instruction_set.default.Inline.diff
@@ -2,43 +2,59 @@
+ // MIR for `default` after Inline
fn default() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-instruction-set.rs:+0:18: +0:18
- let _1: (); // in scope 0 at $DIR/inline-instruction-set.rs:+1:5: +1:26
- let _2: (); // in scope 0 at $DIR/inline-instruction-set.rs:+2:5: +2:26
- let _3: (); // in scope 0 at $DIR/inline-instruction-set.rs:+3:5: +3:30
-+ scope 1 (inlined instruction_set_default) { // at $DIR/inline-instruction-set.rs:53:5: 53:30
+ let mut _0: (); // return place in scope 0 at $DIR/inline_instruction_set.rs:+0:18: +0:18
+ let _1: (); // in scope 0 at $DIR/inline_instruction_set.rs:+1:5: +1:26
+ let _2: (); // in scope 0 at $DIR/inline_instruction_set.rs:+2:5: +2:26
+ let _3: (); // in scope 0 at $DIR/inline_instruction_set.rs:+3:5: +3:30
+ let _4: (); // in scope 0 at $DIR/inline_instruction_set.rs:+4:5: +4:41
++ scope 1 (inlined instruction_set_default) { // at $DIR/inline_instruction_set.rs:59:5: 59:30
++ }
++ scope 2 (inlined inline_always_and_using_inline_asm) { // at $DIR/inline_instruction_set.rs:60:5: 60:41
++ scope 3 {
++ }
+ }
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-instruction-set.rs:+1:5: +1:26
- _1 = instruction_set_a32() -> bb1; // scope 0 at $DIR/inline-instruction-set.rs:+1:5: +1:26
+ StorageLive(_1); // scope 0 at $DIR/inline_instruction_set.rs:+1:5: +1:26
+ _1 = instruction_set_a32() -> bb1; // scope 0 at $DIR/inline_instruction_set.rs:+1:5: +1:26
// mir::Constant
- // + span: $DIR/inline-instruction-set.rs:51:5: 51:24
+ // + span: $DIR/inline_instruction_set.rs:57:5: 57:24
// + literal: Const { ty: fn() {instruction_set_a32}, val: Value(<ZST>) }
}
bb1: {
- StorageDead(_1); // scope 0 at $DIR/inline-instruction-set.rs:+1:26: +1:27
- StorageLive(_2); // scope 0 at $DIR/inline-instruction-set.rs:+2:5: +2:26
- _2 = instruction_set_t32() -> bb2; // scope 0 at $DIR/inline-instruction-set.rs:+2:5: +2:26
+ StorageDead(_1); // scope 0 at $DIR/inline_instruction_set.rs:+1:26: +1:27
+ StorageLive(_2); // scope 0 at $DIR/inline_instruction_set.rs:+2:5: +2:26
+ _2 = instruction_set_t32() -> bb2; // scope 0 at $DIR/inline_instruction_set.rs:+2:5: +2:26
// mir::Constant
- // + span: $DIR/inline-instruction-set.rs:52:5: 52:24
+ // + span: $DIR/inline_instruction_set.rs:58:5: 58:24
// + literal: Const { ty: fn() {instruction_set_t32}, val: Value(<ZST>) }
}
bb2: {
- StorageDead(_2); // scope 0 at $DIR/inline-instruction-set.rs:+2:26: +2:27
- StorageLive(_3); // scope 0 at $DIR/inline-instruction-set.rs:+3:5: +3:30
-- _3 = instruction_set_default() -> bb3; // scope 0 at $DIR/inline-instruction-set.rs:+3:5: +3:30
+ StorageDead(_2); // scope 0 at $DIR/inline_instruction_set.rs:+2:26: +2:27
+ StorageLive(_3); // scope 0 at $DIR/inline_instruction_set.rs:+3:5: +3:30
+- _3 = instruction_set_default() -> bb3; // scope 0 at $DIR/inline_instruction_set.rs:+3:5: +3:30
- // mir::Constant
-- // + span: $DIR/inline-instruction-set.rs:53:5: 53:28
+- // + span: $DIR/inline_instruction_set.rs:59:5: 59:28
- // + literal: Const { ty: fn() {instruction_set_default}, val: Value(<ZST>) }
- }
-
- bb3: {
- StorageDead(_3); // scope 0 at $DIR/inline-instruction-set.rs:+3:30: +3:31
- _0 = const (); // scope 0 at $DIR/inline-instruction-set.rs:+0:18: +4:2
- return; // scope 0 at $DIR/inline-instruction-set.rs:+4:2: +4:2
+ StorageDead(_3); // scope 0 at $DIR/inline_instruction_set.rs:+3:30: +3:31
+ StorageLive(_4); // scope 0 at $DIR/inline_instruction_set.rs:+4:5: +4:41
+- _4 = inline_always_and_using_inline_asm() -> bb4; // scope 0 at $DIR/inline_instruction_set.rs:+4:5: +4:41
+- // mir::Constant
+- // + span: $DIR/inline_instruction_set.rs:60:5: 60:39
+- // + literal: Const { ty: fn() {inline_always_and_using_inline_asm}, val: Value(<ZST>) }
++ asm!("/* do nothing */", options((empty))) -> bb3; // scope 3 at $DIR/inline_instruction_set.rs:43:14: 43:38
+ }
+
+- bb4: {
++ bb3: {
+ StorageDead(_4); // scope 0 at $DIR/inline_instruction_set.rs:+4:41: +4:42
+ _0 = const (); // scope 0 at $DIR/inline_instruction_set.rs:+0:18: +5:2
+ return; // scope 0 at $DIR/inline_instruction_set.rs:+5:2: +5:2
}
}
diff --git a/src/test/mir-opt/inline/inline-instruction-set.rs b/src/test/mir-opt/inline/inline_instruction_set.rs
index be36ff50c..5dfb04943 100644
--- a/src/test/mir-opt/inline/inline-instruction-set.rs
+++ b/src/test/mir-opt/inline/inline_instruction_set.rs
@@ -1,5 +1,7 @@
// Checks that only functions with the compatible instruction_set attributes are inlined.
//
+// A function is "compatible" when the *callee* has the same attribute or no attribute.
+//
// compile-flags: --target thumbv4t-none-eabi
// needs-llvm-components: arm
@@ -36,14 +38,18 @@ fn instruction_set_t32() {}
#[inline]
fn instruction_set_default() {}
+#[inline(always)]
+fn inline_always_and_using_inline_asm() {
+ unsafe { asm!("/* do nothing */") };
+}
+
// EMIT_MIR inline_instruction_set.t32.Inline.diff
#[instruction_set(arm::t32)]
pub fn t32() {
instruction_set_a32();
instruction_set_t32();
- // The default instruction set is currently
- // conservatively assumed to be incompatible.
instruction_set_default();
+ inline_always_and_using_inline_asm();
}
// EMIT_MIR inline_instruction_set.default.Inline.diff
@@ -51,4 +57,5 @@ pub fn default() {
instruction_set_a32();
instruction_set_t32();
instruction_set_default();
+ inline_always_and_using_inline_asm();
}
diff --git a/src/test/mir-opt/inline/inline_instruction_set.t32.Inline.diff b/src/test/mir-opt/inline/inline_instruction_set.t32.Inline.diff
index b275d08e0..e777b2cc2 100644
--- a/src/test/mir-opt/inline/inline_instruction_set.t32.Inline.diff
+++ b/src/test/mir-opt/inline/inline_instruction_set.t32.Inline.diff
@@ -2,45 +2,57 @@
+ // MIR for `t32` after Inline
fn t32() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-instruction-set.rs:+0:14: +0:14
- let _1: (); // in scope 0 at $DIR/inline-instruction-set.rs:+1:5: +1:26
- let _2: (); // in scope 0 at $DIR/inline-instruction-set.rs:+2:5: +2:26
- let _3: (); // in scope 0 at $DIR/inline-instruction-set.rs:+5:5: +5:30
-+ scope 1 (inlined instruction_set_t32) { // at $DIR/inline-instruction-set.rs:43:5: 43:26
+ let mut _0: (); // return place in scope 0 at $DIR/inline_instruction_set.rs:+0:14: +0:14
+ let _1: (); // in scope 0 at $DIR/inline_instruction_set.rs:+1:5: +1:26
+ let _2: (); // in scope 0 at $DIR/inline_instruction_set.rs:+2:5: +2:26
+ let _3: (); // in scope 0 at $DIR/inline_instruction_set.rs:+3:5: +3:30
+ let _4: (); // in scope 0 at $DIR/inline_instruction_set.rs:+4:5: +4:41
++ scope 1 (inlined instruction_set_t32) { // at $DIR/inline_instruction_set.rs:50:5: 50:26
++ }
++ scope 2 (inlined instruction_set_default) { // at $DIR/inline_instruction_set.rs:51:5: 51:30
+ }
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-instruction-set.rs:+1:5: +1:26
- _1 = instruction_set_a32() -> bb1; // scope 0 at $DIR/inline-instruction-set.rs:+1:5: +1:26
+ StorageLive(_1); // scope 0 at $DIR/inline_instruction_set.rs:+1:5: +1:26
+ _1 = instruction_set_a32() -> bb1; // scope 0 at $DIR/inline_instruction_set.rs:+1:5: +1:26
// mir::Constant
- // + span: $DIR/inline-instruction-set.rs:42:5: 42:24
+ // + span: $DIR/inline_instruction_set.rs:49:5: 49:24
// + literal: Const { ty: fn() {instruction_set_a32}, val: Value(<ZST>) }
}
bb1: {
- StorageDead(_1); // scope 0 at $DIR/inline-instruction-set.rs:+1:26: +1:27
- StorageLive(_2); // scope 0 at $DIR/inline-instruction-set.rs:+2:5: +2:26
-- _2 = instruction_set_t32() -> bb2; // scope 0 at $DIR/inline-instruction-set.rs:+2:5: +2:26
+ StorageDead(_1); // scope 0 at $DIR/inline_instruction_set.rs:+1:26: +1:27
+ StorageLive(_2); // scope 0 at $DIR/inline_instruction_set.rs:+2:5: +2:26
+- _2 = instruction_set_t32() -> bb2; // scope 0 at $DIR/inline_instruction_set.rs:+2:5: +2:26
- // mir::Constant
-- // + span: $DIR/inline-instruction-set.rs:43:5: 43:24
+- // + span: $DIR/inline_instruction_set.rs:50:5: 50:24
- // + literal: Const { ty: fn() {instruction_set_t32}, val: Value(<ZST>) }
- }
-
- bb2: {
- StorageDead(_2); // scope 0 at $DIR/inline-instruction-set.rs:+2:26: +2:27
- StorageLive(_3); // scope 0 at $DIR/inline-instruction-set.rs:+5:5: +5:30
-- _3 = instruction_set_default() -> bb3; // scope 0 at $DIR/inline-instruction-set.rs:+5:5: +5:30
-+ _3 = instruction_set_default() -> bb2; // scope 0 at $DIR/inline-instruction-set.rs:+5:5: +5:30
+ StorageDead(_2); // scope 0 at $DIR/inline_instruction_set.rs:+2:26: +2:27
+ StorageLive(_3); // scope 0 at $DIR/inline_instruction_set.rs:+3:5: +3:30
+- _3 = instruction_set_default() -> bb3; // scope 0 at $DIR/inline_instruction_set.rs:+3:5: +3:30
+- // mir::Constant
+- // + span: $DIR/inline_instruction_set.rs:51:5: 51:28
+- // + literal: Const { ty: fn() {instruction_set_default}, val: Value(<ZST>) }
+- }
+-
+- bb3: {
+ StorageDead(_3); // scope 0 at $DIR/inline_instruction_set.rs:+3:30: +3:31
+ StorageLive(_4); // scope 0 at $DIR/inline_instruction_set.rs:+4:5: +4:41
+- _4 = inline_always_and_using_inline_asm() -> bb4; // scope 0 at $DIR/inline_instruction_set.rs:+4:5: +4:41
++ _4 = inline_always_and_using_inline_asm() -> bb2; // scope 0 at $DIR/inline_instruction_set.rs:+4:5: +4:41
// mir::Constant
- // + span: $DIR/inline-instruction-set.rs:46:5: 46:28
- // + literal: Const { ty: fn() {instruction_set_default}, val: Value(<ZST>) }
+ // + span: $DIR/inline_instruction_set.rs:52:5: 52:39
+ // + literal: Const { ty: fn() {inline_always_and_using_inline_asm}, val: Value(<ZST>) }
}
-- bb3: {
+- bb4: {
+ bb2: {
- StorageDead(_3); // scope 0 at $DIR/inline-instruction-set.rs:+5:30: +5:31
- _0 = const (); // scope 0 at $DIR/inline-instruction-set.rs:+0:14: +6:2
- return; // scope 0 at $DIR/inline-instruction-set.rs:+6:2: +6:2
+ StorageDead(_4); // scope 0 at $DIR/inline_instruction_set.rs:+4:41: +4:42
+ _0 = const (); // scope 0 at $DIR/inline_instruction_set.rs:+0:14: +5:2
+ return; // scope 0 at $DIR/inline_instruction_set.rs:+5:2: +5:2
}
}
diff --git a/src/test/mir-opt/inline/inline_into_box_place.main.Inline.diff b/src/test/mir-opt/inline/inline_into_box_place.main.Inline.diff
index 7e017373b..2a4dc9e3e 100644
--- a/src/test/mir-opt/inline/inline_into_box_place.main.Inline.diff
+++ b/src/test/mir-opt/inline/inline_into_box_place.main.Inline.diff
@@ -2,45 +2,45 @@
+ // MIR for `main` after Inline
fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-into-box-place.rs:+0:11: +0:11
- let _1: std::boxed::Box<std::vec::Vec<u32>>; // in scope 0 at $DIR/inline-into-box-place.rs:+1:9: +1:11
- let mut _2: usize; // in scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
- let mut _3: usize; // in scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
- let mut _4: *mut u8; // in scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
- let mut _5: std::boxed::Box<std::vec::Vec<u32>>; // in scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
- let mut _6: (); // in scope 0 at $DIR/inline-into-box-place.rs:+1:42: +1:43
- let mut _7: *const std::vec::Vec<u32>; // in scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
-+ let mut _8: &mut std::vec::Vec<u32>; // in scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
+ let mut _0: (); // return place in scope 0 at $DIR/inline_into_box_place.rs:+0:11: +0:11
+ let _1: std::boxed::Box<std::vec::Vec<u32>>; // in scope 0 at $DIR/inline_into_box_place.rs:+1:9: +1:11
+ let mut _2: usize; // in scope 0 at $DIR/inline_into_box_place.rs:+1:29: +1:43
+ let mut _3: usize; // in scope 0 at $DIR/inline_into_box_place.rs:+1:29: +1:43
+ let mut _4: *mut u8; // in scope 0 at $DIR/inline_into_box_place.rs:+1:29: +1:43
+ let mut _5: std::boxed::Box<std::vec::Vec<u32>>; // in scope 0 at $DIR/inline_into_box_place.rs:+1:29: +1:43
+ let mut _6: (); // in scope 0 at $DIR/inline_into_box_place.rs:+1:42: +1:43
+ let mut _7: *const std::vec::Vec<u32>; // in scope 0 at $DIR/inline_into_box_place.rs:+1:29: +1:43
++ let mut _8: &mut std::vec::Vec<u32>; // in scope 0 at $DIR/inline_into_box_place.rs:+1:33: +1:43
scope 1 {
- debug _x => _1; // in scope 1 at $DIR/inline-into-box-place.rs:+1:9: +1:11
+ debug _x => _1; // in scope 1 at $DIR/inline_into_box_place.rs:+1:9: +1:11
}
scope 2 {
}
-+ scope 3 (inlined Vec::<u32>::new) { // at $DIR/inline-into-box-place.rs:8:33: 8:43
++ scope 3 (inlined Vec::<u32>::new) { // at $DIR/inline_into_box_place.rs:8:33: 8:43
+ let mut _9: alloc::raw_vec::RawVec<u32>; // in scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
+ }
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-into-box-place.rs:+1:9: +1:11
- _2 = SizeOf(std::vec::Vec<u32>); // scope 2 at $DIR/inline-into-box-place.rs:+1:29: +1:43
- _3 = AlignOf(std::vec::Vec<u32>); // scope 2 at $DIR/inline-into-box-place.rs:+1:29: +1:43
- _4 = alloc::alloc::exchange_malloc(move _2, move _3) -> bb1; // scope 2 at $DIR/inline-into-box-place.rs:+1:29: +1:43
+ StorageLive(_1); // scope 0 at $DIR/inline_into_box_place.rs:+1:9: +1:11
+ _2 = SizeOf(std::vec::Vec<u32>); // scope 2 at $DIR/inline_into_box_place.rs:+1:29: +1:43
+ _3 = AlignOf(std::vec::Vec<u32>); // scope 2 at $DIR/inline_into_box_place.rs:+1:29: +1:43
+ _4 = alloc::alloc::exchange_malloc(move _2, move _3) -> bb1; // scope 2 at $DIR/inline_into_box_place.rs:+1:29: +1:43
// mir::Constant
- // + span: $DIR/inline-into-box-place.rs:8:29: 8:43
+ // + span: $DIR/inline_into_box_place.rs:8:29: 8:43
// + literal: Const { ty: unsafe fn(usize, usize) -> *mut u8 {alloc::alloc::exchange_malloc}, val: Value(<ZST>) }
}
bb1: {
- StorageLive(_5); // scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
- _5 = ShallowInitBox(move _4, std::vec::Vec<u32>); // scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
- _7 = (((_5.0: std::ptr::Unique<std::vec::Vec<u32>>).0: std::ptr::NonNull<std::vec::Vec<u32>>).0: *const std::vec::Vec<u32>); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
-- (*_7) = Vec::<u32>::new() -> [return: bb2, unwind: bb5]; // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
-+ StorageLive(_8); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
-+ _8 = &mut (*_7); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
+ StorageLive(_5); // scope 0 at $DIR/inline_into_box_place.rs:+1:29: +1:43
+ _5 = ShallowInitBox(move _4, std::vec::Vec<u32>); // scope 0 at $DIR/inline_into_box_place.rs:+1:29: +1:43
+ _7 = (((_5.0: std::ptr::Unique<std::vec::Vec<u32>>).0: std::ptr::NonNull<std::vec::Vec<u32>>).0: *const std::vec::Vec<u32>); // scope 0 at $DIR/inline_into_box_place.rs:+1:33: +1:43
+- (*_7) = Vec::<u32>::new() -> [return: bb2, unwind: bb5]; // scope 0 at $DIR/inline_into_box_place.rs:+1:33: +1:43
++ StorageLive(_8); // scope 0 at $DIR/inline_into_box_place.rs:+1:33: +1:43
++ _8 = &mut (*_7); // scope 0 at $DIR/inline_into_box_place.rs:+1:33: +1:43
+ StorageLive(_9); // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
+ _9 = const _; // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
// mir::Constant
-- // + span: $DIR/inline-into-box-place.rs:8:33: 8:41
+- // + span: $DIR/inline_into_box_place.rs:8:33: 8:41
- // + user_ty: UserType(1)
- // + literal: Const { ty: fn() -> Vec<u32> {Vec::<u32>::new}, val: Value(<ZST>) }
- }
@@ -53,29 +53,29 @@
+ ((*_8).0: alloc::raw_vec::RawVec<u32>) = move _9; // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
+ ((*_8).1: usize) = const 0_usize; // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
+ StorageDead(_9); // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
-+ StorageDead(_8); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
- _1 = move _5; // scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
- StorageDead(_5); // scope 0 at $DIR/inline-into-box-place.rs:+1:42: +1:43
- _0 = const (); // scope 0 at $DIR/inline-into-box-place.rs:+0:11: +2:2
-- drop(_1) -> [return: bb3, unwind: bb4]; // scope 0 at $DIR/inline-into-box-place.rs:+2:1: +2:2
-+ drop(_1) -> [return: bb2, unwind: bb3]; // scope 0 at $DIR/inline-into-box-place.rs:+2:1: +2:2
++ StorageDead(_8); // scope 0 at $DIR/inline_into_box_place.rs:+1:33: +1:43
+ _1 = move _5; // scope 0 at $DIR/inline_into_box_place.rs:+1:29: +1:43
+ StorageDead(_5); // scope 0 at $DIR/inline_into_box_place.rs:+1:42: +1:43
+ _0 = const (); // scope 0 at $DIR/inline_into_box_place.rs:+0:11: +2:2
+- drop(_1) -> [return: bb3, unwind: bb4]; // scope 0 at $DIR/inline_into_box_place.rs:+2:1: +2:2
++ drop(_1) -> [return: bb2, unwind: bb3]; // scope 0 at $DIR/inline_into_box_place.rs:+2:1: +2:2
}
- bb3: {
+ bb2: {
- StorageDead(_1); // scope 0 at $DIR/inline-into-box-place.rs:+2:1: +2:2
- return; // scope 0 at $DIR/inline-into-box-place.rs:+2:2: +2:2
+ StorageDead(_1); // scope 0 at $DIR/inline_into_box_place.rs:+2:1: +2:2
+ return; // scope 0 at $DIR/inline_into_box_place.rs:+2:2: +2:2
}
- bb4 (cleanup): {
+ bb3 (cleanup): {
- resume; // scope 0 at $DIR/inline-into-box-place.rs:+0:1: +2:2
+ resume; // scope 0 at $DIR/inline_into_box_place.rs:+0:1: +2:2
- }
-
- bb5 (cleanup): {
-- _6 = alloc::alloc::box_free::<Vec<u32>, std::alloc::Global>(move (_5.0: std::ptr::Unique<std::vec::Vec<u32>>), move (_5.1: std::alloc::Global)) -> bb4; // scope 0 at $DIR/inline-into-box-place.rs:+1:42: +1:43
+- _6 = alloc::alloc::box_free::<Vec<u32>, std::alloc::Global>(move (_5.0: std::ptr::Unique<std::vec::Vec<u32>>), move (_5.1: std::alloc::Global)) -> bb4; // scope 0 at $DIR/inline_into_box_place.rs:+1:42: +1:43
- // mir::Constant
-- // + span: $DIR/inline-into-box-place.rs:8:42: 8:43
+- // + span: $DIR/inline_into_box_place.rs:8:42: 8:43
- // + literal: Const { ty: unsafe fn(Unique<Vec<u32>>, std::alloc::Global) {alloc::alloc::box_free::<Vec<u32>, std::alloc::Global>}, val: Value(<ZST>) }
}
}
diff --git a/src/test/mir-opt/inline/inline-into-box-place.rs b/src/test/mir-opt/inline/inline_into_box_place.rs
index 232bcc7b2..232bcc7b2 100644
--- a/src/test/mir-opt/inline/inline-into-box-place.rs
+++ b/src/test/mir-opt/inline/inline_into_box_place.rs
diff --git a/src/test/mir-opt/inline/inline_options.main.Inline.after.mir b/src/test/mir-opt/inline/inline_options.main.Inline.after.mir
index 361b02715..1c590be94 100644
--- a/src/test/mir-opt/inline/inline_options.main.Inline.after.mir
+++ b/src/test/mir-opt/inline/inline_options.main.Inline.after.mir
@@ -1,55 +1,55 @@
// MIR for `main` after Inline
fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-options.rs:+0:11: +0:11
- let _1: (); // in scope 0 at $DIR/inline-options.rs:+1:5: +1:18
- let _2: (); // in scope 0 at $DIR/inline-options.rs:+2:5: +2:21
- scope 1 (inlined inlined::<u32>) { // at $DIR/inline-options.rs:10:5: 10:21
- let _3: (); // in scope 1 at $DIR/inline-options.rs:16:23: 16:26
- let _4: (); // in scope 1 at $DIR/inline-options.rs:16:28: 16:31
- let _5: (); // in scope 1 at $DIR/inline-options.rs:16:33: 16:36
+ let mut _0: (); // return place in scope 0 at $DIR/inline_options.rs:+0:11: +0:11
+ let _1: (); // in scope 0 at $DIR/inline_options.rs:+1:5: +1:18
+ let _2: (); // in scope 0 at $DIR/inline_options.rs:+2:5: +2:21
+ scope 1 (inlined inlined::<u32>) { // at $DIR/inline_options.rs:10:5: 10:21
+ let _3: (); // in scope 1 at $DIR/inline_options.rs:16:23: 16:26
+ let _4: (); // in scope 1 at $DIR/inline_options.rs:16:28: 16:31
+ let _5: (); // in scope 1 at $DIR/inline_options.rs:16:33: 16:36
}
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-options.rs:+1:5: +1:18
- _1 = not_inlined() -> bb1; // scope 0 at $DIR/inline-options.rs:+1:5: +1:18
+ StorageLive(_1); // scope 0 at $DIR/inline_options.rs:+1:5: +1:18
+ _1 = not_inlined() -> bb1; // scope 0 at $DIR/inline_options.rs:+1:5: +1:18
// mir::Constant
- // + span: $DIR/inline-options.rs:9:5: 9:16
+ // + span: $DIR/inline_options.rs:9:5: 9:16
// + literal: Const { ty: fn() {not_inlined}, val: Value(<ZST>) }
}
bb1: {
- StorageDead(_1); // scope 0 at $DIR/inline-options.rs:+1:18: +1:19
- StorageLive(_2); // scope 0 at $DIR/inline-options.rs:+2:5: +2:21
- StorageLive(_3); // scope 1 at $DIR/inline-options.rs:16:23: 16:26
- _3 = g() -> bb2; // scope 1 at $DIR/inline-options.rs:16:23: 16:26
+ StorageDead(_1); // scope 0 at $DIR/inline_options.rs:+1:18: +1:19
+ StorageLive(_2); // scope 0 at $DIR/inline_options.rs:+2:5: +2:21
+ StorageLive(_3); // scope 1 at $DIR/inline_options.rs:16:23: 16:26
+ _3 = g() -> bb2; // scope 1 at $DIR/inline_options.rs:16:23: 16:26
// mir::Constant
- // + span: $DIR/inline-options.rs:16:23: 16:24
+ // + span: $DIR/inline_options.rs:16:23: 16:24
// + literal: Const { ty: fn() {g}, val: Value(<ZST>) }
}
bb2: {
- StorageDead(_3); // scope 1 at $DIR/inline-options.rs:16:26: 16:27
- StorageLive(_4); // scope 1 at $DIR/inline-options.rs:16:28: 16:31
- _4 = g() -> bb3; // scope 1 at $DIR/inline-options.rs:16:28: 16:31
+ StorageDead(_3); // scope 1 at $DIR/inline_options.rs:16:26: 16:27
+ StorageLive(_4); // scope 1 at $DIR/inline_options.rs:16:28: 16:31
+ _4 = g() -> bb3; // scope 1 at $DIR/inline_options.rs:16:28: 16:31
// mir::Constant
- // + span: $DIR/inline-options.rs:16:28: 16:29
+ // + span: $DIR/inline_options.rs:16:28: 16:29
// + literal: Const { ty: fn() {g}, val: Value(<ZST>) }
}
bb3: {
- StorageDead(_4); // scope 1 at $DIR/inline-options.rs:16:31: 16:32
- StorageLive(_5); // scope 1 at $DIR/inline-options.rs:16:33: 16:36
- _5 = g() -> bb4; // scope 1 at $DIR/inline-options.rs:16:33: 16:36
+ StorageDead(_4); // scope 1 at $DIR/inline_options.rs:16:31: 16:32
+ StorageLive(_5); // scope 1 at $DIR/inline_options.rs:16:33: 16:36
+ _5 = g() -> bb4; // scope 1 at $DIR/inline_options.rs:16:33: 16:36
// mir::Constant
- // + span: $DIR/inline-options.rs:16:33: 16:34
+ // + span: $DIR/inline_options.rs:16:33: 16:34
// + literal: Const { ty: fn() {g}, val: Value(<ZST>) }
}
bb4: {
- StorageDead(_5); // scope 1 at $DIR/inline-options.rs:16:36: 16:37
- StorageDead(_2); // scope 0 at $DIR/inline-options.rs:+2:21: +2:22
- _0 = const (); // scope 0 at $DIR/inline-options.rs:+0:11: +3:2
- return; // scope 0 at $DIR/inline-options.rs:+3:2: +3:2
+ StorageDead(_5); // scope 1 at $DIR/inline_options.rs:16:36: 16:37
+ StorageDead(_2); // scope 0 at $DIR/inline_options.rs:+2:21: +2:22
+ _0 = const (); // scope 0 at $DIR/inline_options.rs:+0:11: +3:2
+ return; // scope 0 at $DIR/inline_options.rs:+3:2: +3:2
}
}
diff --git a/src/test/mir-opt/inline/inline-options.rs b/src/test/mir-opt/inline/inline_options.rs
index 477f050b6..477f050b6 100644
--- a/src/test/mir-opt/inline/inline-options.rs
+++ b/src/test/mir-opt/inline/inline_options.rs
diff --git a/src/test/mir-opt/inline/inline_retag.bar.Inline.after.mir b/src/test/mir-opt/inline/inline_retag.bar.Inline.after.mir
index 169e7f5c5..60149ff36 100644
--- a/src/test/mir-opt/inline/inline_retag.bar.Inline.after.mir
+++ b/src/test/mir-opt/inline/inline_retag.bar.Inline.after.mir
@@ -1,72 +1,68 @@
// MIR for `bar` after Inline
fn bar() -> bool {
- let mut _0: bool; // return place in scope 0 at $DIR/inline-retag.rs:+0:13: +0:17
- let _1: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo}; // in scope 0 at $DIR/inline-retag.rs:+1:9: +1:10
- let mut _2: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo}; // in scope 0 at $DIR/inline-retag.rs:+2:5: +2:6
- let mut _3: &i32; // in scope 0 at $DIR/inline-retag.rs:+2:7: +2:9
- let _4: &i32; // in scope 0 at $DIR/inline-retag.rs:+2:7: +2:9
- let _5: i32; // in scope 0 at $DIR/inline-retag.rs:+2:8: +2:9
- let mut _6: &i32; // in scope 0 at $DIR/inline-retag.rs:+2:11: +2:14
- let _7: &i32; // in scope 0 at $DIR/inline-retag.rs:+2:11: +2:14
- let _8: i32; // in scope 0 at $DIR/inline-retag.rs:+2:12: +2:14
+ let mut _0: bool; // return place in scope 0 at $DIR/inline_retag.rs:+0:13: +0:17
+ let _1: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo}; // in scope 0 at $DIR/inline_retag.rs:+1:9: +1:10
+ let mut _2: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo}; // in scope 0 at $DIR/inline_retag.rs:+2:5: +2:6
+ let mut _3: &i32; // in scope 0 at $DIR/inline_retag.rs:+2:7: +2:9
+ let _4: &i32; // in scope 0 at $DIR/inline_retag.rs:+2:7: +2:9
+ let _5: i32; // in scope 0 at $DIR/inline_retag.rs:+2:8: +2:9
+ let mut _6: &i32; // in scope 0 at $DIR/inline_retag.rs:+2:11: +2:14
+ let _7: &i32; // in scope 0 at $DIR/inline_retag.rs:+2:11: +2:14
+ let _8: i32; // in scope 0 at $DIR/inline_retag.rs:+2:12: +2:14
scope 1 {
- debug f => _1; // in scope 1 at $DIR/inline-retag.rs:+1:9: +1:10
- let mut _9: &i32; // in scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
- let mut _10: &i32; // in scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
- scope 2 (inlined foo) { // at $DIR/inline-retag.rs:12:5: 12:15
- debug x => _3; // in scope 2 at $DIR/inline-retag.rs:16:8: 16:9
- debug y => _6; // in scope 2 at $DIR/inline-retag.rs:16:17: 16:18
- let mut _11: i32; // in scope 2 at $DIR/inline-retag.rs:17:5: 17:7
- let mut _12: i32; // in scope 2 at $DIR/inline-retag.rs:17:11: 17:13
+ debug f => _1; // in scope 1 at $DIR/inline_retag.rs:+1:9: +1:10
+ let mut _9: &i32; // in scope 1 at $DIR/inline_retag.rs:+2:11: +2:14
+ let mut _10: &i32; // in scope 1 at $DIR/inline_retag.rs:+2:7: +2:9
+ scope 2 (inlined foo) { // at $DIR/inline_retag.rs:12:5: 12:15
+ debug x => _3; // in scope 2 at $DIR/inline_retag.rs:16:8: 16:9
+ debug y => _6; // in scope 2 at $DIR/inline_retag.rs:16:17: 16:18
+ let mut _11: i32; // in scope 2 at $DIR/inline_retag.rs:17:5: 17:7
+ let mut _12: i32; // in scope 2 at $DIR/inline_retag.rs:17:11: 17:13
}
}
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-retag.rs:+1:9: +1:10
- _1 = foo; // scope 0 at $DIR/inline-retag.rs:+1:13: +1:16
+ StorageLive(_1); // scope 0 at $DIR/inline_retag.rs:+1:9: +1:10
+ _1 = foo; // scope 0 at $DIR/inline_retag.rs:+1:13: +1:16
// mir::Constant
- // + span: $DIR/inline-retag.rs:11:13: 11:16
+ // + span: $DIR/inline_retag.rs:11:13: 11:16
// + literal: Const { ty: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo}, val: Value(<ZST>) }
- StorageLive(_2); // scope 1 at $DIR/inline-retag.rs:+2:5: +2:6
- _2 = _1; // scope 1 at $DIR/inline-retag.rs:+2:5: +2:6
- StorageLive(_3); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
- StorageLive(_4); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
- _10 = const _; // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
+ StorageLive(_2); // scope 1 at $DIR/inline_retag.rs:+2:5: +2:6
+ _2 = _1; // scope 1 at $DIR/inline_retag.rs:+2:5: +2:6
+ StorageLive(_3); // scope 1 at $DIR/inline_retag.rs:+2:7: +2:9
+ StorageLive(_4); // scope 1 at $DIR/inline_retag.rs:+2:7: +2:9
+ _10 = const _; // scope 1 at $DIR/inline_retag.rs:+2:7: +2:9
// mir::Constant
- // + span: $DIR/inline-retag.rs:12:7: 12:9
+ // + span: $DIR/inline_retag.rs:12:7: 12:9
// + literal: Const { ty: &i32, val: Unevaluated(bar, [], Some(promoted[1])) }
- Retag(_10); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
- _4 = &(*_10); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
- Retag(_4); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
- _3 = &(*_4); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
- Retag(_3); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
- StorageLive(_6); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
- StorageLive(_7); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
- _9 = const _; // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
+ Retag(_10); // scope 1 at $DIR/inline_retag.rs:+2:7: +2:9
+ _4 = &(*_10); // scope 1 at $DIR/inline_retag.rs:+2:7: +2:9
+ _3 = &(*_4); // scope 1 at $DIR/inline_retag.rs:+2:7: +2:9
+ StorageLive(_6); // scope 1 at $DIR/inline_retag.rs:+2:11: +2:14
+ StorageLive(_7); // scope 1 at $DIR/inline_retag.rs:+2:11: +2:14
+ _9 = const _; // scope 1 at $DIR/inline_retag.rs:+2:11: +2:14
// mir::Constant
- // + span: $DIR/inline-retag.rs:12:11: 12:14
+ // + span: $DIR/inline_retag.rs:12:11: 12:14
// + literal: Const { ty: &i32, val: Unevaluated(bar, [], Some(promoted[0])) }
- Retag(_9); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
- _7 = &(*_9); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
- Retag(_7); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
- _6 = &(*_7); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
- Retag(_6); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
- Retag(_3); // scope 2 at $DIR/inline-retag.rs:16:8: 16:9
- Retag(_6); // scope 2 at $DIR/inline-retag.rs:16:17: 16:18
- StorageLive(_11); // scope 2 at $DIR/inline-retag.rs:17:5: 17:7
- _11 = (*_3); // scope 2 at $DIR/inline-retag.rs:17:5: 17:7
- StorageLive(_12); // scope 2 at $DIR/inline-retag.rs:17:11: 17:13
- _12 = (*_6); // scope 2 at $DIR/inline-retag.rs:17:11: 17:13
- _0 = Eq(move _11, move _12); // scope 2 at $DIR/inline-retag.rs:17:5: 17:13
- StorageDead(_12); // scope 2 at $DIR/inline-retag.rs:17:12: 17:13
- StorageDead(_11); // scope 2 at $DIR/inline-retag.rs:17:12: 17:13
- StorageDead(_6); // scope 1 at $DIR/inline-retag.rs:+2:14: +2:15
- StorageDead(_3); // scope 1 at $DIR/inline-retag.rs:+2:14: +2:15
- StorageDead(_2); // scope 1 at $DIR/inline-retag.rs:+2:14: +2:15
- StorageDead(_1); // scope 0 at $DIR/inline-retag.rs:+3:1: +3:2
- StorageDead(_7); // scope 0 at $DIR/inline-retag.rs:+3:1: +3:2
- StorageDead(_4); // scope 0 at $DIR/inline-retag.rs:+3:1: +3:2
- return; // scope 0 at $DIR/inline-retag.rs:+3:2: +3:2
+ Retag(_9); // scope 1 at $DIR/inline_retag.rs:+2:11: +2:14
+ _7 = &(*_9); // scope 1 at $DIR/inline_retag.rs:+2:11: +2:14
+ _6 = &(*_7); // scope 1 at $DIR/inline_retag.rs:+2:11: +2:14
+ Retag(_3); // scope 2 at $DIR/inline_retag.rs:16:8: 16:9
+ Retag(_6); // scope 2 at $DIR/inline_retag.rs:16:17: 16:18
+ StorageLive(_11); // scope 2 at $DIR/inline_retag.rs:17:5: 17:7
+ _11 = (*_3); // scope 2 at $DIR/inline_retag.rs:17:5: 17:7
+ StorageLive(_12); // scope 2 at $DIR/inline_retag.rs:17:11: 17:13
+ _12 = (*_6); // scope 2 at $DIR/inline_retag.rs:17:11: 17:13
+ _0 = Eq(move _11, move _12); // scope 2 at $DIR/inline_retag.rs:17:5: 17:13
+ StorageDead(_12); // scope 2 at $DIR/inline_retag.rs:17:12: 17:13
+ StorageDead(_11); // scope 2 at $DIR/inline_retag.rs:17:12: 17:13
+ StorageDead(_6); // scope 1 at $DIR/inline_retag.rs:+2:14: +2:15
+ StorageDead(_3); // scope 1 at $DIR/inline_retag.rs:+2:14: +2:15
+ StorageDead(_2); // scope 1 at $DIR/inline_retag.rs:+2:14: +2:15
+ StorageDead(_1); // scope 0 at $DIR/inline_retag.rs:+3:1: +3:2
+ StorageDead(_7); // scope 0 at $DIR/inline_retag.rs:+3:1: +3:2
+ StorageDead(_4); // scope 0 at $DIR/inline_retag.rs:+3:1: +3:2
+ return; // scope 0 at $DIR/inline_retag.rs:+3:2: +3:2
}
}
diff --git a/src/test/mir-opt/inline/inline-retag.rs b/src/test/mir-opt/inline/inline_retag.rs
index c6950f269..c6950f269 100644
--- a/src/test/mir-opt/inline/inline-retag.rs
+++ b/src/test/mir-opt/inline/inline_retag.rs
diff --git a/src/test/mir-opt/inline/inline_shims.clone.Inline.diff b/src/test/mir-opt/inline/inline_shims.clone.Inline.diff
index d691e90b7..969573ba3 100644
--- a/src/test/mir-opt/inline/inline_shims.clone.Inline.diff
+++ b/src/test/mir-opt/inline/inline_shims.clone.Inline.diff
@@ -2,25 +2,25 @@
+ // MIR for `clone` after Inline
fn clone(_1: fn(A, B)) -> fn(A, B) {
- debug f => _1; // in scope 0 at $DIR/inline-shims.rs:+0:20: +0:21
- let mut _0: fn(A, B); // return place in scope 0 at $DIR/inline-shims.rs:+0:36: +0:44
- let mut _2: &fn(A, B); // in scope 0 at $DIR/inline-shims.rs:+1:5: +1:14
-+ scope 1 (inlined <fn(A, B) as Clone>::clone - shim(fn(A, B))) { // at $DIR/inline-shims.rs:6:5: 6:14
+ debug f => _1; // in scope 0 at $DIR/inline_shims.rs:+0:20: +0:21
+ let mut _0: fn(A, B); // return place in scope 0 at $DIR/inline_shims.rs:+0:36: +0:44
+ let mut _2: &fn(A, B); // in scope 0 at $DIR/inline_shims.rs:+1:5: +1:14
++ scope 1 (inlined <fn(A, B) as Clone>::clone - shim(fn(A, B))) { // at $DIR/inline_shims.rs:6:5: 6:14
+ }
bb0: {
- StorageLive(_2); // scope 0 at $DIR/inline-shims.rs:+1:5: +1:14
- _2 = &_1; // scope 0 at $DIR/inline-shims.rs:+1:5: +1:14
-- _0 = <fn(A, B) as Clone>::clone(move _2) -> bb1; // scope 0 at $DIR/inline-shims.rs:+1:5: +1:14
+ StorageLive(_2); // scope 0 at $DIR/inline_shims.rs:+1:5: +1:14
+ _2 = &_1; // scope 0 at $DIR/inline_shims.rs:+1:5: +1:14
+- _0 = <fn(A, B) as Clone>::clone(move _2) -> bb1; // scope 0 at $DIR/inline_shims.rs:+1:5: +1:14
- // mir::Constant
-- // + span: $DIR/inline-shims.rs:6:7: 6:12
+- // + span: $DIR/inline_shims.rs:6:7: 6:12
- // + literal: Const { ty: for<'a> fn(&'a fn(A, B)) -> fn(A, B) {<fn(A, B) as Clone>::clone}, val: Value(<ZST>) }
- }
-
- bb1: {
+ _0 = (*_2); // scope 1 at $SRC_DIR/core/src/clone.rs:LL:COL
- StorageDead(_2); // scope 0 at $DIR/inline-shims.rs:+1:13: +1:14
- return; // scope 0 at $DIR/inline-shims.rs:+2:2: +2:2
+ StorageDead(_2); // scope 0 at $DIR/inline_shims.rs:+1:13: +1:14
+ return; // scope 0 at $DIR/inline_shims.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/inline_shims.drop.Inline.diff b/src/test/mir-opt/inline/inline_shims.drop.Inline.diff
index f7b1cde80..7a54beca2 100644
--- a/src/test/mir-opt/inline/inline_shims.drop.Inline.diff
+++ b/src/test/mir-opt/inline/inline_shims.drop.Inline.diff
@@ -2,51 +2,51 @@
+ // MIR for `drop` after Inline
fn drop(_1: *mut Vec<A>, _2: *mut Option<B>) -> () {
- debug a => _1; // in scope 0 at $DIR/inline-shims.rs:+0:19: +0:20
- debug b => _2; // in scope 0 at $DIR/inline-shims.rs:+0:35: +0:36
- let mut _0: (); // return place in scope 0 at $DIR/inline-shims.rs:+0:54: +0:54
- let _3: (); // in scope 0 at $DIR/inline-shims.rs:+1:14: +1:40
- let mut _4: *mut std::vec::Vec<A>; // in scope 0 at $DIR/inline-shims.rs:+1:38: +1:39
- let mut _5: *mut std::option::Option<B>; // in scope 0 at $DIR/inline-shims.rs:+2:38: +2:39
+ debug a => _1; // in scope 0 at $DIR/inline_shims.rs:+0:19: +0:20
+ debug b => _2; // in scope 0 at $DIR/inline_shims.rs:+0:35: +0:36
+ let mut _0: (); // return place in scope 0 at $DIR/inline_shims.rs:+0:54: +0:54
+ let _3: (); // in scope 0 at $DIR/inline_shims.rs:+1:14: +1:40
+ let mut _4: *mut std::vec::Vec<A>; // in scope 0 at $DIR/inline_shims.rs:+1:38: +1:39
+ let mut _5: *mut std::option::Option<B>; // in scope 0 at $DIR/inline_shims.rs:+2:38: +2:39
scope 1 {
}
scope 2 {
-+ scope 3 (inlined std::ptr::drop_in_place::<Option<B>> - shim(Some(Option<B>))) { // at $DIR/inline-shims.rs:12:14: 12:40
++ scope 3 (inlined std::ptr::drop_in_place::<Option<B>> - shim(Some(Option<B>))) { // at $DIR/inline_shims.rs:12:14: 12:40
+ let mut _6: isize; // in scope 3 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _7: isize; // in scope 3 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
}
bb0: {
- StorageLive(_3); // scope 0 at $DIR/inline-shims.rs:+1:5: +1:42
- StorageLive(_4); // scope 1 at $DIR/inline-shims.rs:+1:38: +1:39
- _4 = _1; // scope 1 at $DIR/inline-shims.rs:+1:38: +1:39
- _3 = std::ptr::drop_in_place::<Vec<A>>(move _4) -> bb1; // scope 1 at $DIR/inline-shims.rs:+1:14: +1:40
+ StorageLive(_3); // scope 0 at $DIR/inline_shims.rs:+1:5: +1:42
+ StorageLive(_4); // scope 1 at $DIR/inline_shims.rs:+1:38: +1:39
+ _4 = _1; // scope 1 at $DIR/inline_shims.rs:+1:38: +1:39
+ _3 = std::ptr::drop_in_place::<Vec<A>>(move _4) -> bb1; // scope 1 at $DIR/inline_shims.rs:+1:14: +1:40
// mir::Constant
- // + span: $DIR/inline-shims.rs:11:14: 11:37
+ // + span: $DIR/inline_shims.rs:11:14: 11:37
// + literal: Const { ty: unsafe fn(*mut Vec<A>) {std::ptr::drop_in_place::<Vec<A>>}, val: Value(<ZST>) }
}
bb1: {
- StorageDead(_4); // scope 1 at $DIR/inline-shims.rs:+1:39: +1:40
- StorageDead(_3); // scope 0 at $DIR/inline-shims.rs:+1:41: +1:42
- StorageLive(_5); // scope 2 at $DIR/inline-shims.rs:+2:38: +2:39
- _5 = _2; // scope 2 at $DIR/inline-shims.rs:+2:38: +2:39
-- _0 = std::ptr::drop_in_place::<Option<B>>(move _5) -> bb2; // scope 2 at $DIR/inline-shims.rs:+2:14: +2:40
+ StorageDead(_4); // scope 1 at $DIR/inline_shims.rs:+1:39: +1:40
+ StorageDead(_3); // scope 0 at $DIR/inline_shims.rs:+1:41: +1:42
+ StorageLive(_5); // scope 2 at $DIR/inline_shims.rs:+2:38: +2:39
+ _5 = _2; // scope 2 at $DIR/inline_shims.rs:+2:38: +2:39
+- _0 = std::ptr::drop_in_place::<Option<B>>(move _5) -> bb2; // scope 2 at $DIR/inline_shims.rs:+2:14: +2:40
- // mir::Constant
-- // + span: $DIR/inline-shims.rs:12:14: 12:37
+- // + span: $DIR/inline_shims.rs:12:14: 12:37
- // + literal: Const { ty: unsafe fn(*mut Option<B>) {std::ptr::drop_in_place::<Option<B>>}, val: Value(<ZST>) }
-+ StorageLive(_6); // scope 2 at $DIR/inline-shims.rs:+2:14: +2:40
-+ StorageLive(_7); // scope 2 at $DIR/inline-shims.rs:+2:14: +2:40
++ StorageLive(_6); // scope 2 at $DIR/inline_shims.rs:+2:14: +2:40
++ StorageLive(_7); // scope 2 at $DIR/inline_shims.rs:+2:14: +2:40
+ _6 = discriminant((*_5)); // scope 3 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ switchInt(move _6) -> [0_isize: bb2, otherwise: bb3]; // scope 3 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
}
bb2: {
-+ StorageDead(_7); // scope 2 at $DIR/inline-shims.rs:+2:14: +2:40
-+ StorageDead(_6); // scope 2 at $DIR/inline-shims.rs:+2:14: +2:40
- StorageDead(_5); // scope 2 at $DIR/inline-shims.rs:+2:39: +2:40
- return; // scope 0 at $DIR/inline-shims.rs:+3:2: +3:2
++ StorageDead(_7); // scope 2 at $DIR/inline_shims.rs:+2:14: +2:40
++ StorageDead(_6); // scope 2 at $DIR/inline_shims.rs:+2:14: +2:40
+ StorageDead(_5); // scope 2 at $DIR/inline_shims.rs:+2:39: +2:40
+ return; // scope 0 at $DIR/inline_shims.rs:+3:2: +3:2
+ }
+
+ bb3: {
diff --git a/src/test/mir-opt/inline/inline-shims.rs b/src/test/mir-opt/inline/inline_shims.rs
index 7c8618f71..7c8618f71 100644
--- a/src/test/mir-opt/inline/inline-shims.rs
+++ b/src/test/mir-opt/inline/inline_shims.rs
diff --git a/src/test/mir-opt/inline/inline_specialization.main.Inline.diff b/src/test/mir-opt/inline/inline_specialization.main.Inline.diff
index fdf2a1e1f..af08296ed 100644
--- a/src/test/mir-opt/inline/inline_specialization.main.Inline.diff
+++ b/src/test/mir-opt/inline/inline_specialization.main.Inline.diff
@@ -2,27 +2,27 @@
+ // MIR for `main` after Inline
fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-specialization.rs:+0:11: +0:11
- let _1: u32; // in scope 0 at $DIR/inline-specialization.rs:+1:9: +1:10
+ let mut _0: (); // return place in scope 0 at $DIR/inline_specialization.rs:+0:11: +0:11
+ let _1: u32; // in scope 0 at $DIR/inline_specialization.rs:+1:9: +1:10
scope 1 {
- debug x => _1; // in scope 1 at $DIR/inline-specialization.rs:+1:9: +1:10
+ debug x => _1; // in scope 1 at $DIR/inline_specialization.rs:+1:9: +1:10
}
-+ scope 2 (inlined <Vec<()> as Foo>::bar) { // at $DIR/inline-specialization.rs:5:13: 5:38
++ scope 2 (inlined <Vec<()> as Foo>::bar) { // at $DIR/inline_specialization.rs:5:13: 5:38
+ }
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-specialization.rs:+1:9: +1:10
-- _1 = <Vec<()> as Foo>::bar() -> bb1; // scope 0 at $DIR/inline-specialization.rs:+1:13: +1:38
+ StorageLive(_1); // scope 0 at $DIR/inline_specialization.rs:+1:9: +1:10
+- _1 = <Vec<()> as Foo>::bar() -> bb1; // scope 0 at $DIR/inline_specialization.rs:+1:13: +1:38
- // mir::Constant
-- // + span: $DIR/inline-specialization.rs:5:13: 5:36
+- // + span: $DIR/inline_specialization.rs:5:13: 5:36
- // + literal: Const { ty: fn() -> u32 {<Vec<()> as Foo>::bar}, val: Value(<ZST>) }
- }
-
- bb1: {
-+ _1 = const 123_u32; // scope 2 at $DIR/inline-specialization.rs:14:31: 14:34
- _0 = const (); // scope 0 at $DIR/inline-specialization.rs:+0:11: +2:2
- StorageDead(_1); // scope 0 at $DIR/inline-specialization.rs:+2:1: +2:2
- return; // scope 0 at $DIR/inline-specialization.rs:+2:2: +2:2
++ _1 = const 123_u32; // scope 2 at $DIR/inline_specialization.rs:14:31: 14:34
+ _0 = const (); // scope 0 at $DIR/inline_specialization.rs:+0:11: +2:2
+ StorageDead(_1); // scope 0 at $DIR/inline_specialization.rs:+2:1: +2:2
+ return; // scope 0 at $DIR/inline_specialization.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/inline-specialization.rs b/src/test/mir-opt/inline/inline_specialization.rs
index 87275b4e5..87275b4e5 100644
--- a/src/test/mir-opt/inline/inline-specialization.rs
+++ b/src/test/mir-opt/inline/inline_specialization.rs
diff --git a/src/test/mir-opt/inline/inline-trait-method.rs b/src/test/mir-opt/inline/inline_trait_method.rs
index 74be53f55..74be53f55 100644
--- a/src/test/mir-opt/inline/inline-trait-method.rs
+++ b/src/test/mir-opt/inline/inline_trait_method.rs
diff --git a/src/test/mir-opt/inline/inline_trait_method.test.Inline.after.mir b/src/test/mir-opt/inline/inline_trait_method.test.Inline.after.mir
index 89eefc292..637bf282a 100644
--- a/src/test/mir-opt/inline/inline_trait_method.test.Inline.after.mir
+++ b/src/test/mir-opt/inline/inline_trait_method.test.Inline.after.mir
@@ -1,21 +1,21 @@
// MIR for `test` after Inline
fn test(_1: &dyn X) -> u32 {
- debug x => _1; // in scope 0 at $DIR/inline-trait-method.rs:+0:9: +0:10
- let mut _0: u32; // return place in scope 0 at $DIR/inline-trait-method.rs:+0:23: +0:26
- let mut _2: &dyn X; // in scope 0 at $DIR/inline-trait-method.rs:+1:5: +1:10
+ debug x => _1; // in scope 0 at $DIR/inline_trait_method.rs:+0:9: +0:10
+ let mut _0: u32; // return place in scope 0 at $DIR/inline_trait_method.rs:+0:23: +0:26
+ let mut _2: &dyn X; // in scope 0 at $DIR/inline_trait_method.rs:+1:5: +1:10
bb0: {
- StorageLive(_2); // scope 0 at $DIR/inline-trait-method.rs:+1:5: +1:10
- _2 = &(*_1); // scope 0 at $DIR/inline-trait-method.rs:+1:5: +1:10
- _0 = <dyn X as X>::y(move _2) -> bb1; // scope 0 at $DIR/inline-trait-method.rs:+1:5: +1:10
+ StorageLive(_2); // scope 0 at $DIR/inline_trait_method.rs:+1:5: +1:10
+ _2 = &(*_1); // scope 0 at $DIR/inline_trait_method.rs:+1:5: +1:10
+ _0 = <dyn X as X>::y(move _2) -> bb1; // scope 0 at $DIR/inline_trait_method.rs:+1:5: +1:10
// mir::Constant
- // + span: $DIR/inline-trait-method.rs:9:7: 9:8
+ // + span: $DIR/inline_trait_method.rs:9:7: 9:8
// + literal: Const { ty: for<'a> fn(&'a dyn X) -> u32 {<dyn X as X>::y}, val: Value(<ZST>) }
}
bb1: {
- StorageDead(_2); // scope 0 at $DIR/inline-trait-method.rs:+1:9: +1:10
- return; // scope 0 at $DIR/inline-trait-method.rs:+2:2: +2:2
+ StorageDead(_2); // scope 0 at $DIR/inline_trait_method.rs:+1:9: +1:10
+ return; // scope 0 at $DIR/inline_trait_method.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/inline-trait-method_2.rs b/src/test/mir-opt/inline/inline_trait_method_2.rs
index 378e71a25..378e71a25 100644
--- a/src/test/mir-opt/inline/inline-trait-method_2.rs
+++ b/src/test/mir-opt/inline/inline_trait_method_2.rs
diff --git a/src/test/mir-opt/inline/inline_trait_method_2.test2.Inline.after.mir b/src/test/mir-opt/inline/inline_trait_method_2.test2.Inline.after.mir
index 3d05869fa..73aea719e 100644
--- a/src/test/mir-opt/inline/inline_trait_method_2.test2.Inline.after.mir
+++ b/src/test/mir-opt/inline/inline_trait_method_2.test2.Inline.after.mir
@@ -1,32 +1,28 @@
// MIR for `test2` after Inline
fn test2(_1: &dyn X) -> bool {
- debug x => _1; // in scope 0 at $DIR/inline-trait-method_2.rs:+0:10: +0:11
- let mut _0: bool; // return place in scope 0 at $DIR/inline-trait-method_2.rs:+0:24: +0:28
- let mut _2: &dyn X; // in scope 0 at $DIR/inline-trait-method_2.rs:+1:10: +1:11
- let mut _3: &dyn X; // in scope 0 at $DIR/inline-trait-method_2.rs:+1:10: +1:11
- scope 1 (inlined test) { // at $DIR/inline-trait-method_2.rs:5:5: 5:12
- debug x => _2; // in scope 1 at $DIR/inline-trait-method_2.rs:9:9: 9:10
- let mut _4: &dyn X; // in scope 1 at $DIR/inline-trait-method_2.rs:10:5: 10:10
+ debug x => _1; // in scope 0 at $DIR/inline_trait_method_2.rs:+0:10: +0:11
+ let mut _0: bool; // return place in scope 0 at $DIR/inline_trait_method_2.rs:+0:24: +0:28
+ let mut _2: &dyn X; // in scope 0 at $DIR/inline_trait_method_2.rs:+1:10: +1:11
+ let mut _3: &dyn X; // in scope 0 at $DIR/inline_trait_method_2.rs:+1:10: +1:11
+ scope 1 (inlined test) { // at $DIR/inline_trait_method_2.rs:5:5: 5:12
+ debug x => _2; // in scope 1 at $DIR/inline_trait_method_2.rs:9:9: 9:10
}
bb0: {
- StorageLive(_2); // scope 0 at $DIR/inline-trait-method_2.rs:+1:10: +1:11
- StorageLive(_3); // scope 0 at $DIR/inline-trait-method_2.rs:+1:10: +1:11
- _3 = &(*_1); // scope 0 at $DIR/inline-trait-method_2.rs:+1:10: +1:11
- _2 = move _3 as &dyn X (Pointer(Unsize)); // scope 0 at $DIR/inline-trait-method_2.rs:+1:10: +1:11
- StorageDead(_3); // scope 0 at $DIR/inline-trait-method_2.rs:+1:10: +1:11
- StorageLive(_4); // scope 1 at $DIR/inline-trait-method_2.rs:10:5: 10:10
- _4 = _2; // scope 1 at $DIR/inline-trait-method_2.rs:10:5: 10:10
- _0 = <dyn X as X>::y(move _4) -> bb1; // scope 1 at $DIR/inline-trait-method_2.rs:10:5: 10:10
+ StorageLive(_2); // scope 0 at $DIR/inline_trait_method_2.rs:+1:10: +1:11
+ StorageLive(_3); // scope 0 at $DIR/inline_trait_method_2.rs:+1:10: +1:11
+ _3 = &(*_1); // scope 0 at $DIR/inline_trait_method_2.rs:+1:10: +1:11
+ _2 = move _3 as &dyn X (Pointer(Unsize)); // scope 0 at $DIR/inline_trait_method_2.rs:+1:10: +1:11
+ StorageDead(_3); // scope 0 at $DIR/inline_trait_method_2.rs:+1:10: +1:11
+ _0 = <dyn X as X>::y(move _2) -> bb1; // scope 1 at $DIR/inline_trait_method_2.rs:10:5: 10:10
// mir::Constant
- // + span: $DIR/inline-trait-method_2.rs:10:7: 10:8
+ // + span: $DIR/inline_trait_method_2.rs:10:7: 10:8
// + literal: Const { ty: for<'a> fn(&'a dyn X) -> bool {<dyn X as X>::y}, val: Value(<ZST>) }
}
bb1: {
- StorageDead(_4); // scope 1 at $DIR/inline-trait-method_2.rs:10:9: 10:10
- StorageDead(_2); // scope 0 at $DIR/inline-trait-method_2.rs:+1:11: +1:12
- return; // scope 0 at $DIR/inline-trait-method_2.rs:+2:2: +2:2
+ StorageDead(_2); // scope 0 at $DIR/inline_trait_method_2.rs:+1:11: +1:12
+ return; // scope 0 at $DIR/inline_trait_method_2.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.a.Inline.after.mir b/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.a.Inline.after.mir
index 5168ae031..777681e1c 100644
--- a/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.a.Inline.after.mir
+++ b/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.a.Inline.after.mir
@@ -1,30 +1,30 @@
// MIR for `a` after Inline
fn a(_1: &mut [T]) -> &mut [T] {
- debug x => _1; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+0:13: +0:14
- let mut _0: &mut [T]; // return place in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+0:29: +0:37
- let mut _2: &mut [T]; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- let mut _3: &mut [T]; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- let mut _4: &mut [T]; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- scope 1 (inlined <[T] as AsMut<[T]>>::as_mut) { // at $DIR/issue-58867-inline-as-ref-as-mut.rs:3:5: 3:15
+ debug x => _1; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+0:13: +0:14
+ let mut _0: &mut [T]; // return place in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+0:29: +0:37
+ let mut _2: &mut [T]; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ let mut _3: &mut [T]; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ let mut _4: &mut [T]; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ scope 1 (inlined <[T] as AsMut<[T]>>::as_mut) { // at $DIR/issue_58867_inline_as_ref_as_mut.rs:3:5: 3:15
debug self => _4; // in scope 1 at $SRC_DIR/core/src/convert/mod.rs:LL:COL
let mut _5: &mut [T]; // in scope 1 at $SRC_DIR/core/src/convert/mod.rs:LL:COL
}
bb0: {
- StorageLive(_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- StorageLive(_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- StorageLive(_4); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- _4 = &mut (*_1); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
+ StorageLive(_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ StorageLive(_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ StorageLive(_4); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ _4 = &mut (*_1); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
StorageLive(_5); // scope 1 at $SRC_DIR/core/src/convert/mod.rs:LL:COL
_5 = &mut (*_4); // scope 1 at $SRC_DIR/core/src/convert/mod.rs:LL:COL
_3 = &mut (*_5); // scope 1 at $SRC_DIR/core/src/convert/mod.rs:LL:COL
StorageDead(_5); // scope 1 at $SRC_DIR/core/src/convert/mod.rs:LL:COL
- _2 = &mut (*_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- StorageDead(_4); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:14: +1:15
- _0 = &mut (*_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- StorageDead(_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:1: +2:2
- StorageDead(_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:1: +2:2
- return; // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:2: +2:2
+ _2 = &mut (*_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ StorageDead(_4); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:14: +1:15
+ _0 = &mut (*_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ StorageDead(_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:1: +2:2
+ StorageDead(_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:1: +2:2
+ return; // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.b.Inline.after.mir b/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.b.Inline.after.mir
index 06d442ae8..83545c991 100644
--- a/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.b.Inline.after.mir
+++ b/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.b.Inline.after.mir
@@ -1,12 +1,12 @@
// MIR for `b` after Inline
fn b(_1: &mut Box<T>) -> &mut T {
- debug x => _1; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+0:13: +0:14
- let mut _0: &mut T; // return place in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+0:32: +0:38
- let mut _2: &mut T; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- let mut _3: &mut T; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- let mut _4: &mut std::boxed::Box<T>; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- scope 1 (inlined <Box<T> as AsMut<T>>::as_mut) { // at $DIR/issue-58867-inline-as-ref-as-mut.rs:8:5: 8:15
+ debug x => _1; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+0:13: +0:14
+ let mut _0: &mut T; // return place in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+0:32: +0:38
+ let mut _2: &mut T; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ let mut _3: &mut T; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ let mut _4: &mut std::boxed::Box<T>; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ scope 1 (inlined <Box<T> as AsMut<T>>::as_mut) { // at $DIR/issue_58867_inline_as_ref_as_mut.rs:8:5: 8:15
debug self => _4; // in scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
let mut _5: &mut T; // in scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
let mut _6: &mut T; // in scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
@@ -15,10 +15,10 @@ fn b(_1: &mut Box<T>) -> &mut T {
}
bb0: {
- StorageLive(_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- StorageLive(_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- StorageLive(_4); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- _4 = &mut (*_1); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
+ StorageLive(_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ StorageLive(_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ StorageLive(_4); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ _4 = &mut (*_1); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
StorageLive(_5); // scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
StorageLive(_6); // scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
_7 = deref_copy (*_4); // scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
@@ -28,11 +28,11 @@ fn b(_1: &mut Box<T>) -> &mut T {
_3 = &mut (*_5); // scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
StorageDead(_6); // scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
StorageDead(_5); // scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
- _2 = &mut (*_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- StorageDead(_4); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:14: +1:15
- _0 = &mut (*_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- StorageDead(_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:1: +2:2
- StorageDead(_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:1: +2:2
- return; // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:2: +2:2
+ _2 = &mut (*_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ StorageDead(_4); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:14: +1:15
+ _0 = &mut (*_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ StorageDead(_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:1: +2:2
+ StorageDead(_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:1: +2:2
+ return; // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.c.Inline.after.mir b/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.c.Inline.after.mir
index c7f20ff98..ed4e9927c 100644
--- a/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.c.Inline.after.mir
+++ b/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.c.Inline.after.mir
@@ -1,22 +1,22 @@
// MIR for `c` after Inline
fn c(_1: &[T]) -> &[T] {
- debug x => _1; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+0:13: +0:14
- let mut _0: &[T]; // return place in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+0:25: +0:29
- let _2: &[T]; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- let mut _3: &[T]; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- scope 1 (inlined <[T] as AsRef<[T]>>::as_ref) { // at $DIR/issue-58867-inline-as-ref-as-mut.rs:13:5: 13:15
+ debug x => _1; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+0:13: +0:14
+ let mut _0: &[T]; // return place in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+0:25: +0:29
+ let _2: &[T]; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ let mut _3: &[T]; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ scope 1 (inlined <[T] as AsRef<[T]>>::as_ref) { // at $DIR/issue_58867_inline_as_ref_as_mut.rs:13:5: 13:15
debug self => _3; // in scope 1 at $SRC_DIR/core/src/convert/mod.rs:LL:COL
}
bb0: {
- StorageLive(_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- StorageLive(_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- _3 = &(*_1); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
+ StorageLive(_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ StorageLive(_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ _3 = &(*_1); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
_2 = _3; // scope 1 at $SRC_DIR/core/src/convert/mod.rs:LL:COL
- _0 = &(*_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- StorageDead(_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:14: +1:15
- StorageDead(_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:1: +2:2
- return; // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:2: +2:2
+ _0 = &(*_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ StorageDead(_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:14: +1:15
+ StorageDead(_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:1: +2:2
+ return; // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.d.Inline.after.mir b/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.d.Inline.after.mir
index d5f06c54a..18a2670be 100644
--- a/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.d.Inline.after.mir
+++ b/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.d.Inline.after.mir
@@ -1,26 +1,26 @@
// MIR for `d` after Inline
fn d(_1: &Box<T>) -> &T {
- debug x => _1; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+0:13: +0:14
- let mut _0: &T; // return place in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+0:28: +0:30
- let _2: &T; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- let mut _3: &std::boxed::Box<T>; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- scope 1 (inlined <Box<T> as AsRef<T>>::as_ref) { // at $DIR/issue-58867-inline-as-ref-as-mut.rs:18:5: 18:15
+ debug x => _1; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+0:13: +0:14
+ let mut _0: &T; // return place in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+0:28: +0:30
+ let _2: &T; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ let mut _3: &std::boxed::Box<T>; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ scope 1 (inlined <Box<T> as AsRef<T>>::as_ref) { // at $DIR/issue_58867_inline_as_ref_as_mut.rs:18:5: 18:15
debug self => _3; // in scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
let mut _4: std::boxed::Box<T>; // in scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
let mut _5: *const T; // in scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
}
bb0: {
- StorageLive(_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- StorageLive(_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- _3 = &(*_1); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
+ StorageLive(_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ StorageLive(_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ _3 = &(*_1); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
_4 = deref_copy (*_3); // scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
_5 = (((_4.0: std::ptr::Unique<T>).0: std::ptr::NonNull<T>).0: *const T); // scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
_2 = &(*_5); // scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
- _0 = &(*_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
- StorageDead(_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:14: +1:15
- StorageDead(_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:1: +2:2
- return; // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:2: +2:2
+ _0 = &(*_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
+ StorageDead(_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:14: +1:15
+ StorageDead(_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:1: +2:2
+ return; // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:2: +2:2
}
}
diff --git a/src/test/mir-opt/inline/issue-58867-inline-as-ref-as-mut.rs b/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.rs
index 94f926d39..94f926d39 100644
--- a/src/test/mir-opt/inline/issue-58867-inline-as-ref-as-mut.rs
+++ b/src/test/mir-opt/inline/issue_58867_inline_as_ref_as_mut.rs
diff --git a/src/test/mir-opt/inline/issue_76997_inline_scopes_parenting.main.Inline.after.mir b/src/test/mir-opt/inline/issue_76997_inline_scopes_parenting.main.Inline.after.mir
index fca53a72f..d99ae1a6c 100644
--- a/src/test/mir-opt/inline/issue_76997_inline_scopes_parenting.main.Inline.after.mir
+++ b/src/test/mir-opt/inline/issue_76997_inline_scopes_parenting.main.Inline.after.mir
@@ -1,42 +1,42 @@
// MIR for `main` after Inline
fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/issue-76997-inline-scopes-parenting.rs:+0:11: +0:11
- let _1: [closure@$DIR/issue-76997-inline-scopes-parenting.rs:5:13: 5:16]; // in scope 0 at $DIR/issue-76997-inline-scopes-parenting.rs:+1:9: +1:10
- let mut _2: &[closure@$DIR/issue-76997-inline-scopes-parenting.rs:5:13: 5:16]; // in scope 0 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:5: +2:6
- let mut _3: ((),); // in scope 0 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:5: +2:10
- let mut _4: (); // in scope 0 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:7: +2:9
- let mut _5: (); // in scope 0 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:5: +2:10
+ let mut _0: (); // return place in scope 0 at $DIR/issue_76997_inline_scopes_parenting.rs:+0:11: +0:11
+ let _1: [closure@$DIR/issue_76997_inline_scopes_parenting.rs:5:13: 5:16]; // in scope 0 at $DIR/issue_76997_inline_scopes_parenting.rs:+1:9: +1:10
+ let mut _2: &[closure@$DIR/issue_76997_inline_scopes_parenting.rs:5:13: 5:16]; // in scope 0 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:5: +2:6
+ let mut _3: ((),); // in scope 0 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:5: +2:10
+ let mut _4: (); // in scope 0 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:7: +2:9
+ let mut _5: (); // in scope 0 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:5: +2:10
scope 1 {
- debug f => _1; // in scope 1 at $DIR/issue-76997-inline-scopes-parenting.rs:+1:9: +1:10
- scope 2 (inlined main::{closure#0}) { // at $DIR/issue-76997-inline-scopes-parenting.rs:6:5: 6:10
- debug x => _5; // in scope 2 at $DIR/issue-76997-inline-scopes-parenting.rs:+1:14: +1:15
- let _6: (); // in scope 2 at $DIR/issue-76997-inline-scopes-parenting.rs:+1:23: +1:24
+ debug f => _1; // in scope 1 at $DIR/issue_76997_inline_scopes_parenting.rs:+1:9: +1:10
+ scope 2 (inlined main::{closure#0}) { // at $DIR/issue_76997_inline_scopes_parenting.rs:6:5: 6:10
+ debug x => _5; // in scope 2 at $DIR/issue_76997_inline_scopes_parenting.rs:+1:14: +1:15
+ let _6: (); // in scope 2 at $DIR/issue_76997_inline_scopes_parenting.rs:+1:23: +1:24
scope 3 {
- debug y => _6; // in scope 3 at $DIR/issue-76997-inline-scopes-parenting.rs:+1:23: +1:24
+ debug y => _6; // in scope 3 at $DIR/issue_76997_inline_scopes_parenting.rs:+1:23: +1:24
}
}
}
bb0: {
- StorageLive(_1); // scope 0 at $DIR/issue-76997-inline-scopes-parenting.rs:+1:9: +1:10
- Deinit(_1); // scope 0 at $DIR/issue-76997-inline-scopes-parenting.rs:+1:13: +1:33
- StorageLive(_2); // scope 1 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:5: +2:6
- _2 = &_1; // scope 1 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:5: +2:6
- StorageLive(_3); // scope 1 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:5: +2:10
- StorageLive(_4); // scope 1 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:7: +2:9
- Deinit(_4); // scope 1 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:7: +2:9
- Deinit(_3); // scope 1 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:5: +2:10
- (_3.0: ()) = move _4; // scope 1 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:5: +2:10
- StorageLive(_5); // scope 1 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:5: +2:10
- _5 = move (_3.0: ()); // scope 1 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:5: +2:10
- StorageLive(_6); // scope 2 at $DIR/issue-76997-inline-scopes-parenting.rs:+1:23: +1:24
- StorageDead(_6); // scope 2 at $DIR/issue-76997-inline-scopes-parenting.rs:+1:32: +1:33
- StorageDead(_5); // scope 1 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:5: +2:10
- StorageDead(_4); // scope 1 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:9: +2:10
- StorageDead(_3); // scope 1 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:9: +2:10
- StorageDead(_2); // scope 1 at $DIR/issue-76997-inline-scopes-parenting.rs:+2:9: +2:10
- StorageDead(_1); // scope 0 at $DIR/issue-76997-inline-scopes-parenting.rs:+3:1: +3:2
- return; // scope 0 at $DIR/issue-76997-inline-scopes-parenting.rs:+3:2: +3:2
+ StorageLive(_1); // scope 0 at $DIR/issue_76997_inline_scopes_parenting.rs:+1:9: +1:10
+ Deinit(_1); // scope 0 at $DIR/issue_76997_inline_scopes_parenting.rs:+1:13: +1:33
+ StorageLive(_2); // scope 1 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:5: +2:6
+ _2 = &_1; // scope 1 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:5: +2:6
+ StorageLive(_3); // scope 1 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:5: +2:10
+ StorageLive(_4); // scope 1 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:7: +2:9
+ Deinit(_4); // scope 1 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:7: +2:9
+ Deinit(_3); // scope 1 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:5: +2:10
+ (_3.0: ()) = move _4; // scope 1 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:5: +2:10
+ StorageLive(_5); // scope 1 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:5: +2:10
+ _5 = move (_3.0: ()); // scope 1 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:5: +2:10
+ StorageLive(_6); // scope 2 at $DIR/issue_76997_inline_scopes_parenting.rs:+1:23: +1:24
+ StorageDead(_6); // scope 2 at $DIR/issue_76997_inline_scopes_parenting.rs:+1:32: +1:33
+ StorageDead(_5); // scope 1 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:5: +2:10
+ StorageDead(_4); // scope 1 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:9: +2:10
+ StorageDead(_3); // scope 1 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:9: +2:10
+ StorageDead(_2); // scope 1 at $DIR/issue_76997_inline_scopes_parenting.rs:+2:9: +2:10
+ StorageDead(_1); // scope 0 at $DIR/issue_76997_inline_scopes_parenting.rs:+3:1: +3:2
+ return; // scope 0 at $DIR/issue_76997_inline_scopes_parenting.rs:+3:2: +3:2
}
}
diff --git a/src/test/mir-opt/inline/issue-76997-inline-scopes-parenting.rs b/src/test/mir-opt/inline/issue_76997_inline_scopes_parenting.rs
index 76d806acc..76d806acc 100644
--- a/src/test/mir-opt/inline/issue-76997-inline-scopes-parenting.rs
+++ b/src/test/mir-opt/inline/issue_76997_inline_scopes_parenting.rs
diff --git a/src/test/mir-opt/inline/issue_78442.bar.Inline.diff b/src/test/mir-opt/inline/issue_78442.bar.Inline.diff
index 4186650df..51a98465f 100644
--- a/src/test/mir-opt/inline/issue_78442.bar.Inline.diff
+++ b/src/test/mir-opt/inline/issue_78442.bar.Inline.diff
@@ -2,67 +2,67 @@
+ // MIR for `bar` after Inline
fn bar(_1: P) -> () {
- debug _baz => _1; // in scope 0 at $DIR/issue-78442.rs:+2:5: +2:9
- let mut _0: (); // return place in scope 0 at $DIR/issue-78442.rs:+3:3: +3:3
- let _2: (); // in scope 0 at $DIR/issue-78442.rs:+4:5: +4:17
- let mut _3: &fn() {foo}; // in scope 0 at $DIR/issue-78442.rs:+4:5: +4:15
- let _4: fn() {foo}; // in scope 0 at $DIR/issue-78442.rs:+4:5: +4:15
- let mut _5: (); // in scope 0 at $DIR/issue-78442.rs:+4:5: +4:17
-+ scope 1 (inlined <fn() {foo} as Fn<()>>::call - shim(fn() {foo})) { // at $DIR/issue-78442.rs:11:5: 11:17
+ debug _baz => _1; // in scope 0 at $DIR/issue_78442.rs:+2:5: +2:9
+ let mut _0: (); // return place in scope 0 at $DIR/issue_78442.rs:+3:3: +3:3
+ let _2: (); // in scope 0 at $DIR/issue_78442.rs:+4:5: +4:17
+ let mut _3: &fn() {foo}; // in scope 0 at $DIR/issue_78442.rs:+4:5: +4:15
+ let _4: fn() {foo}; // in scope 0 at $DIR/issue_78442.rs:+4:5: +4:15
+ let mut _5: (); // in scope 0 at $DIR/issue_78442.rs:+4:5: +4:17
++ scope 1 (inlined <fn() {foo} as Fn<()>>::call - shim(fn() {foo})) { // at $DIR/issue_78442.rs:11:5: 11:17
+ }
bb0: {
- StorageLive(_2); // scope 0 at $DIR/issue-78442.rs:+4:5: +4:17
- StorageLive(_3); // scope 0 at $DIR/issue-78442.rs:+4:5: +4:15
- StorageLive(_4); // scope 0 at $DIR/issue-78442.rs:+4:5: +4:15
-- _4 = hide_foo() -> [return: bb1, unwind: bb4]; // scope 0 at $DIR/issue-78442.rs:+4:5: +4:15
-+ _4 = hide_foo() -> [return: bb1, unwind: bb3]; // scope 0 at $DIR/issue-78442.rs:+4:5: +4:15
+ StorageLive(_2); // scope 0 at $DIR/issue_78442.rs:+4:5: +4:17
+ StorageLive(_3); // scope 0 at $DIR/issue_78442.rs:+4:5: +4:15
+ StorageLive(_4); // scope 0 at $DIR/issue_78442.rs:+4:5: +4:15
+- _4 = hide_foo() -> [return: bb1, unwind: bb4]; // scope 0 at $DIR/issue_78442.rs:+4:5: +4:15
++ _4 = hide_foo() -> [return: bb1, unwind: bb3]; // scope 0 at $DIR/issue_78442.rs:+4:5: +4:15
// mir::Constant
- // + span: $DIR/issue-78442.rs:11:5: 11:13
+ // + span: $DIR/issue_78442.rs:11:5: 11:13
// + literal: Const { ty: fn() -> impl Fn() {hide_foo}, val: Value(<ZST>) }
}
bb1: {
- _3 = &_4; // scope 0 at $DIR/issue-78442.rs:+4:5: +4:15
- StorageLive(_5); // scope 0 at $DIR/issue-78442.rs:+4:5: +4:17
- Deinit(_5); // scope 0 at $DIR/issue-78442.rs:+4:5: +4:17
-- _2 = <fn() {foo} as Fn<()>>::call(move _3, move _5) -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/issue-78442.rs:+4:5: +4:17
+ _3 = &_4; // scope 0 at $DIR/issue_78442.rs:+4:5: +4:15
+ StorageLive(_5); // scope 0 at $DIR/issue_78442.rs:+4:5: +4:17
+ Deinit(_5); // scope 0 at $DIR/issue_78442.rs:+4:5: +4:17
+- _2 = <fn() {foo} as Fn<()>>::call(move _3, move _5) -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/issue_78442.rs:+4:5: +4:17
- // mir::Constant
-- // + span: $DIR/issue-78442.rs:11:5: 11:15
+- // + span: $DIR/issue_78442.rs:11:5: 11:15
- // + literal: Const { ty: for<'a> extern "rust-call" fn(&'a fn() {foo}, ()) -> <fn() {foo} as FnOnce<()>>::Output {<fn() {foo} as Fn<()>>::call}, val: Value(<ZST>) }
+ _2 = move (*_3)() -> [return: bb5, unwind: bb3]; // scope 1 at $SRC_DIR/core/src/ops/function.rs:LL:COL
}
bb2: {
-- StorageDead(_5); // scope 0 at $DIR/issue-78442.rs:+4:16: +4:17
-- StorageDead(_3); // scope 0 at $DIR/issue-78442.rs:+4:16: +4:17
-- StorageDead(_4); // scope 0 at $DIR/issue-78442.rs:+4:17: +4:18
-- StorageDead(_2); // scope 0 at $DIR/issue-78442.rs:+4:17: +4:18
-- _0 = const (); // scope 0 at $DIR/issue-78442.rs:+3:3: +5:2
-- drop(_1) -> [return: bb3, unwind: bb5]; // scope 0 at $DIR/issue-78442.rs:+5:1: +5:2
-+ return; // scope 0 at $DIR/issue-78442.rs:+5:2: +5:2
+- StorageDead(_5); // scope 0 at $DIR/issue_78442.rs:+4:16: +4:17
+- StorageDead(_3); // scope 0 at $DIR/issue_78442.rs:+4:16: +4:17
+- StorageDead(_4); // scope 0 at $DIR/issue_78442.rs:+4:17: +4:18
+- StorageDead(_2); // scope 0 at $DIR/issue_78442.rs:+4:17: +4:18
+- _0 = const (); // scope 0 at $DIR/issue_78442.rs:+3:3: +5:2
+- drop(_1) -> [return: bb3, unwind: bb5]; // scope 0 at $DIR/issue_78442.rs:+5:1: +5:2
++ return; // scope 0 at $DIR/issue_78442.rs:+5:2: +5:2
}
- bb3: {
-- return; // scope 0 at $DIR/issue-78442.rs:+5:2: +5:2
+- return; // scope 0 at $DIR/issue_78442.rs:+5:2: +5:2
+ bb3 (cleanup): {
-+ drop(_1) -> bb4; // scope 0 at $DIR/issue-78442.rs:+5:1: +5:2
++ drop(_1) -> bb4; // scope 0 at $DIR/issue_78442.rs:+5:1: +5:2
}
bb4 (cleanup): {
-- drop(_1) -> bb5; // scope 0 at $DIR/issue-78442.rs:+5:1: +5:2
-+ resume; // scope 0 at $DIR/issue-78442.rs:+0:1: +5:2
+- drop(_1) -> bb5; // scope 0 at $DIR/issue_78442.rs:+5:1: +5:2
++ resume; // scope 0 at $DIR/issue_78442.rs:+0:1: +5:2
}
- bb5 (cleanup): {
-- resume; // scope 0 at $DIR/issue-78442.rs:+0:1: +5:2
+- resume; // scope 0 at $DIR/issue_78442.rs:+0:1: +5:2
+ bb5: {
-+ StorageDead(_5); // scope 0 at $DIR/issue-78442.rs:+4:16: +4:17
-+ StorageDead(_3); // scope 0 at $DIR/issue-78442.rs:+4:16: +4:17
-+ StorageDead(_4); // scope 0 at $DIR/issue-78442.rs:+4:17: +4:18
-+ StorageDead(_2); // scope 0 at $DIR/issue-78442.rs:+4:17: +4:18
-+ _0 = const (); // scope 0 at $DIR/issue-78442.rs:+3:3: +5:2
-+ drop(_1) -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/issue-78442.rs:+5:1: +5:2
++ StorageDead(_5); // scope 0 at $DIR/issue_78442.rs:+4:16: +4:17
++ StorageDead(_3); // scope 0 at $DIR/issue_78442.rs:+4:16: +4:17
++ StorageDead(_4); // scope 0 at $DIR/issue_78442.rs:+4:17: +4:18
++ StorageDead(_2); // scope 0 at $DIR/issue_78442.rs:+4:17: +4:18
++ _0 = const (); // scope 0 at $DIR/issue_78442.rs:+3:3: +5:2
++ drop(_1) -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/issue_78442.rs:+5:1: +5:2
}
}
diff --git a/src/test/mir-opt/inline/issue_78442.bar.RevealAll.diff b/src/test/mir-opt/inline/issue_78442.bar.RevealAll.diff
index 24e9a3df1..e47466c5e 100644
--- a/src/test/mir-opt/inline/issue_78442.bar.RevealAll.diff
+++ b/src/test/mir-opt/inline/issue_78442.bar.RevealAll.diff
@@ -2,56 +2,56 @@
+ // MIR for `bar` after RevealAll
fn bar(_1: P) -> () {
- debug _baz => _1; // in scope 0 at $DIR/issue-78442.rs:+2:5: +2:9
- let mut _0: (); // return place in scope 0 at $DIR/issue-78442.rs:+3:3: +3:3
- let _2: (); // in scope 0 at $DIR/issue-78442.rs:+4:5: +4:17
-- let mut _3: &impl Fn(); // in scope 0 at $DIR/issue-78442.rs:+4:5: +4:15
-- let _4: impl Fn(); // in scope 0 at $DIR/issue-78442.rs:+4:5: +4:15
-+ let mut _3: &fn() {foo}; // in scope 0 at $DIR/issue-78442.rs:+4:5: +4:15
-+ let _4: fn() {foo}; // in scope 0 at $DIR/issue-78442.rs:+4:5: +4:15
- let mut _5: (); // in scope 0 at $DIR/issue-78442.rs:+4:5: +4:17
+ debug _baz => _1; // in scope 0 at $DIR/issue_78442.rs:+2:5: +2:9
+ let mut _0: (); // return place in scope 0 at $DIR/issue_78442.rs:+3:3: +3:3
+ let _2: (); // in scope 0 at $DIR/issue_78442.rs:+4:5: +4:17
+- let mut _3: &impl Fn(); // in scope 0 at $DIR/issue_78442.rs:+4:5: +4:15
+- let _4: impl Fn(); // in scope 0 at $DIR/issue_78442.rs:+4:5: +4:15
++ let mut _3: &fn() {foo}; // in scope 0 at $DIR/issue_78442.rs:+4:5: +4:15
++ let _4: fn() {foo}; // in scope 0 at $DIR/issue_78442.rs:+4:5: +4:15
+ let mut _5: (); // in scope 0 at $DIR/issue_78442.rs:+4:5: +4:17
bb0: {
- StorageLive(_2); // scope 0 at $DIR/issue-78442.rs:+4:5: +4:17
- StorageLive(_3); // scope 0 at $DIR/issue-78442.rs:+4:5: +4:15
- StorageLive(_4); // scope 0 at $DIR/issue-78442.rs:+4:5: +4:15
- _4 = hide_foo() -> [return: bb1, unwind: bb4]; // scope 0 at $DIR/issue-78442.rs:+4:5: +4:15
+ StorageLive(_2); // scope 0 at $DIR/issue_78442.rs:+4:5: +4:17
+ StorageLive(_3); // scope 0 at $DIR/issue_78442.rs:+4:5: +4:15
+ StorageLive(_4); // scope 0 at $DIR/issue_78442.rs:+4:5: +4:15
+ _4 = hide_foo() -> [return: bb1, unwind: bb4]; // scope 0 at $DIR/issue_78442.rs:+4:5: +4:15
// mir::Constant
- // + span: $DIR/issue-78442.rs:11:5: 11:13
+ // + span: $DIR/issue_78442.rs:11:5: 11:13
// + literal: Const { ty: fn() -> impl Fn() {hide_foo}, val: Value(<ZST>) }
}
bb1: {
- _3 = &_4; // scope 0 at $DIR/issue-78442.rs:+4:5: +4:15
- StorageLive(_5); // scope 0 at $DIR/issue-78442.rs:+4:5: +4:17
- Deinit(_5); // scope 0 at $DIR/issue-78442.rs:+4:5: +4:17
-- _2 = <impl Fn() as Fn<()>>::call(move _3, move _5) -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/issue-78442.rs:+4:5: +4:17
-+ _2 = <fn() {foo} as Fn<()>>::call(move _3, move _5) -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/issue-78442.rs:+4:5: +4:17
+ _3 = &_4; // scope 0 at $DIR/issue_78442.rs:+4:5: +4:15
+ StorageLive(_5); // scope 0 at $DIR/issue_78442.rs:+4:5: +4:17
+ Deinit(_5); // scope 0 at $DIR/issue_78442.rs:+4:5: +4:17
+- _2 = <impl Fn() as Fn<()>>::call(move _3, move _5) -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/issue_78442.rs:+4:5: +4:17
++ _2 = <fn() {foo} as Fn<()>>::call(move _3, move _5) -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/issue_78442.rs:+4:5: +4:17
// mir::Constant
- // + span: $DIR/issue-78442.rs:11:5: 11:15
+ // + span: $DIR/issue_78442.rs:11:5: 11:15
- // + literal: Const { ty: for<'a> extern "rust-call" fn(&'a impl Fn(), ()) -> <impl Fn() as FnOnce<()>>::Output {<impl Fn() as Fn<()>>::call}, val: Value(<ZST>) }
+ // + literal: Const { ty: for<'a> extern "rust-call" fn(&'a fn() {foo}, ()) -> <fn() {foo} as FnOnce<()>>::Output {<fn() {foo} as Fn<()>>::call}, val: Value(<ZST>) }
}
bb2: {
- StorageDead(_5); // scope 0 at $DIR/issue-78442.rs:+4:16: +4:17
- StorageDead(_3); // scope 0 at $DIR/issue-78442.rs:+4:16: +4:17
- StorageDead(_4); // scope 0 at $DIR/issue-78442.rs:+4:17: +4:18
- StorageDead(_2); // scope 0 at $DIR/issue-78442.rs:+4:17: +4:18
- _0 = const (); // scope 0 at $DIR/issue-78442.rs:+3:3: +5:2
- drop(_1) -> [return: bb3, unwind: bb5]; // scope 0 at $DIR/issue-78442.rs:+5:1: +5:2
+ StorageDead(_5); // scope 0 at $DIR/issue_78442.rs:+4:16: +4:17
+ StorageDead(_3); // scope 0 at $DIR/issue_78442.rs:+4:16: +4:17
+ StorageDead(_4); // scope 0 at $DIR/issue_78442.rs:+4:17: +4:18
+ StorageDead(_2); // scope 0 at $DIR/issue_78442.rs:+4:17: +4:18
+ _0 = const (); // scope 0 at $DIR/issue_78442.rs:+3:3: +5:2
+ drop(_1) -> [return: bb3, unwind: bb5]; // scope 0 at $DIR/issue_78442.rs:+5:1: +5:2
}
bb3: {
- return; // scope 0 at $DIR/issue-78442.rs:+5:2: +5:2
+ return; // scope 0 at $DIR/issue_78442.rs:+5:2: +5:2
}
bb4 (cleanup): {
- drop(_1) -> bb5; // scope 0 at $DIR/issue-78442.rs:+5:1: +5:2
+ drop(_1) -> bb5; // scope 0 at $DIR/issue_78442.rs:+5:1: +5:2
}
bb5 (cleanup): {
- resume; // scope 0 at $DIR/issue-78442.rs:+0:1: +5:2
+ resume; // scope 0 at $DIR/issue_78442.rs:+0:1: +5:2
}
}
diff --git a/src/test/mir-opt/inline/issue-78442.rs b/src/test/mir-opt/inline/issue_78442.rs
index aa8ede2df..aa8ede2df 100644
--- a/src/test/mir-opt/inline/issue-78442.rs
+++ b/src/test/mir-opt/inline/issue_78442.rs
diff --git a/src/test/mir-opt/inline/polymorphic-recursion.rs b/src/test/mir-opt/inline/polymorphic_recursion.rs
index 7388722b7..7388722b7 100644
--- a/src/test/mir-opt/inline/polymorphic-recursion.rs
+++ b/src/test/mir-opt/inline/polymorphic_recursion.rs