diff options
| -rw-r--r-- | src/librustc_mir/build/scope.rs | 2 | ||||
| -rw-r--r-- | src/test/mir-opt/storage_ranges.rs | 3 |
2 files changed, 2 insertions, 3 deletions
diff --git a/src/librustc_mir/build/scope.rs b/src/librustc_mir/build/scope.rs index 88c2c17476e..01cce3c7dd7 100644 --- a/src/librustc_mir/build/scope.rs +++ b/src/librustc_mir/build/scope.rs @@ -462,7 +462,7 @@ impl<'a, 'gcx, 'tcx> Builder<'a, 'gcx, 'tcx> { } else { // Only temps and vars need their storage dead. match *lvalue { - Lvalue::Local(index) if index.index() > self.arg_count + 1 => DropKind::Storage, + Lvalue::Local(index) if index.index() > self.arg_count => DropKind::Storage, _ => return } }; diff --git a/src/test/mir-opt/storage_ranges.rs b/src/test/mir-opt/storage_ranges.rs index e2dd1bc3795..a4905281e46 100644 --- a/src/test/mir-opt/storage_ranges.rs +++ b/src/test/mir-opt/storage_ranges.rs @@ -18,8 +18,6 @@ fn main() { let c = 1; } -// TODO The StorageDead for local1 (a) after local6's (c) is missing! - // END RUST SOURCE // START rustc.node4.TypeckMir.before.mir // bb0: { @@ -39,6 +37,7 @@ fn main() { // local6 = const 1i32; // scope 1 at storage_ranges.rs:16:13: 16:14 // local0 = (); // scope 3 at storage_ranges.rs:11:11: 17:2 // StorageDead(local6); // scope 1 at storage_ranges.rs:16:9: 16:10 +// StorageDead(local1); // scope 0 at storage_ranges.rs:14:9: 14:10 // goto -> bb1; // scope 0 at storage_ranges.rs:11:1: 17:2 // } // |
