parent
8018b401da
commit
6fe7742fdf
1 changed files with 5 additions and 5 deletions
|
@ -1396,9 +1396,9 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Builds drops for `pop_scope` and `leave_top_scope`.
|
/// Builds drops for `pop_scope` and `leave_top_scope`.
|
||||||
///
|
///
|
||||||
/// # Parameters
|
/// # Parameters
|
||||||
///
|
///
|
||||||
/// * `unwind_drops`, the drop tree data structure storing what needs to be cleaned up if unwind occurs
|
/// * `unwind_drops`, the drop tree data structure storing what needs to be cleaned up if unwind occurs
|
||||||
/// * `scope`, describes the drops that will occur on exiting the scope in regular execution
|
/// * `scope`, describes the drops that will occur on exiting the scope in regular execution
|
||||||
/// * `block`, the block to branch to once drops are complete (assuming no unwind occurs)
|
/// * `block`, the block to branch to once drops are complete (assuming no unwind occurs)
|
||||||
|
@ -1436,14 +1436,14 @@ fn build_scope_drops<'tcx>(
|
||||||
// statement. For other functions we don't worry about StorageDead. The
|
// statement. For other functions we don't worry about StorageDead. The
|
||||||
// drops for the unwind path should have already been generated by
|
// drops for the unwind path should have already been generated by
|
||||||
// `diverge_cleanup_gen`.
|
// `diverge_cleanup_gen`.
|
||||||
|
|
||||||
// `unwind_to` indicates what needs to be dropped should unwinding occur.
|
// `unwind_to` indicates what needs to be dropped should unwinding occur.
|
||||||
// This is a subset of what needs to be dropped when exiting the scope.
|
// This is a subset of what needs to be dropped when exiting the scope.
|
||||||
// As we unwind the scope, we will also move `unwind_to` backwards to match,
|
// As we unwind the scope, we will also move `unwind_to` backwards to match,
|
||||||
// so that we can use it should a destructor panic.
|
// so that we can use it should a destructor panic.
|
||||||
let mut unwind_to = unwind_to;
|
let mut unwind_to = unwind_to;
|
||||||
|
|
||||||
// The block that we should jump to after drops complete. We start by building the final drop (`drops[n]`
|
// The block that we should jump to after drops complete. We start by building the final drop (`drops[n]`
|
||||||
// in the diagram above) and then build the drops (e.g., `drop[1]`, `drop[0]`) that come before it.
|
// in the diagram above) and then build the drops (e.g., `drop[1]`, `drop[0]`) that come before it.
|
||||||
// block begins as the successor of `drops[n]` and then becomes `drops[n]` so that `drops[n-1]`
|
// block begins as the successor of `drops[n]` and then becomes `drops[n]` so that `drops[n-1]`
|
||||||
// will branch to `drops[n]`.
|
// will branch to `drops[n]`.
|
||||||
|
@ -1492,7 +1492,7 @@ fn build_scope_drops<'tcx>(
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// As in the `DropKind::Storage` case below:
|
// As in the `DropKind::Storage` case below:
|
||||||
// normally lint-related drops are not emitted for unwind,
|
// normally lint-related drops are not emitted for unwind,
|
||||||
// so we can just leave `unwind_to` unmodified, but in some
|
// so we can just leave `unwind_to` unmodified, but in some
|
||||||
// cases we emit things ALSO on the unwind path, so we need to adjust
|
// cases we emit things ALSO on the unwind path, so we need to adjust
|
||||||
|
|
Loading…
Add table
Reference in a new issue