diff options
| author | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2017-09-01 22:53:54 +0300 |
|---|---|---|
| committer | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2017-09-02 02:17:38 +0300 |
| commit | 02ec0ae066dd3367107b81c6cd7193f4247074df (patch) | |
| tree | da7ebf6f61568a99fd0062489c2f223c32e730a2 | |
| parent | dc563efd98e83fab93e0d9fe198f45a2e95b1e7e (diff) | |
| download | rust-02ec0ae066dd3367107b81c6cd7193f4247074df.tar.gz rust-02ec0ae066dd3367107b81c6cd7193f4247074df.zip | |
rustc_mir: always emit StorageLive even without a matching StorageDead.
| -rw-r--r-- | src/librustc_mir/build/expr/as_rvalue.rs | 8 | ||||
| -rw-r--r-- | src/librustc_mir/build/expr/as_temp.rs | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/librustc_mir/build/expr/as_rvalue.rs b/src/librustc_mir/build/expr/as_rvalue.rs index da375e791bc..bde5f58618f 100644 --- a/src/librustc_mir/build/expr/as_rvalue.rs +++ b/src/librustc_mir/build/expr/as_rvalue.rs @@ -97,12 +97,12 @@ impl<'a, 'gcx, 'tcx> Builder<'a, 'gcx, 'tcx> { ExprKind::Box { value } => { let value = this.hir.mirror(value); let result = this.temp(expr.ty, expr_span); + this.cfg.push(block, Statement { + source_info, + kind: StatementKind::StorageLive(result.clone()) + }); if let Some(scope) = scope { // schedule a shallow free of that memory, lest we unwind: - this.cfg.push(block, Statement { - source_info, - kind: StatementKind::StorageLive(result.clone()) - }); this.schedule_drop(expr_span, scope, &result, value.ty); } diff --git a/src/librustc_mir/build/expr/as_temp.rs b/src/librustc_mir/build/expr/as_temp.rs index 4f248ddb0e2..22ae81217e5 100644 --- a/src/librustc_mir/build/expr/as_temp.rs +++ b/src/librustc_mir/build/expr/as_temp.rs @@ -50,7 +50,7 @@ impl<'a, 'gcx, 'tcx> Builder<'a, 'gcx, 'tcx> { let expr_ty = expr.ty.clone(); let temp = this.temp(expr_ty.clone(), expr_span); - if !expr_ty.is_never() && temp_lifetime.is_some() { + if !expr_ty.is_never() { this.cfg.push(block, Statement { source_info, kind: StatementKind::StorageLive(temp.clone()) |
