From b00db7c75b85d521a17372750512111657baaea2 Mon Sep 17 00:00:00 2001 From: "Felix S. Klock II" Date: Mon, 5 Mar 2018 16:54:20 +0100 Subject: [PATCH] Instrument `statement_effect_on_borrows` for the `lhs = &place` case. --- src/librustc_mir/dataflow/impls/borrows.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/librustc_mir/dataflow/impls/borrows.rs b/src/librustc_mir/dataflow/impls/borrows.rs index a21691813a4..098ad8e558f 100644 --- a/src/librustc_mir/dataflow/impls/borrows.rs +++ b/src/librustc_mir/dataflow/impls/borrows.rs @@ -179,8 +179,14 @@ impl<'a, 'gcx, 'tcx> BitDenotation for Borrows<'a, 'gcx, 'tcx> { if let RegionKind::ReEmpty = region { // If the borrowed value dies before the borrow is used, the region for // the borrow can be empty. Don't track the borrow in that case. + debug!("Borrows::statement_effect_on_borrows \ + location: {:?} stmt: {:?} has empty region, killing {:?}", + location, stmt.kind, index); sets.kill(&index); return + } else { + debug!("Borrows::statement_effect_on_borrows location: {:?} stmt: {:?}", + location, stmt.kind); } assert!(self.borrow_set.region_map.get(region).unwrap_or_else(|| {