about summary refs log tree commit diff
path: root/src/liballoc
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-12-21 10:38:22 +0000
committerbors <bors@rust-lang.org>2016-12-21 10:38:22 +0000
commit1b38776c1f68c6fd47c1b2f7b7974efc7dd64901 (patch)
treeab3fa350432db81e6a2491419e99fd9704cb458e /src/liballoc
parent439c3128d740af372dae163310f7292e999098e1 (diff)
parent0013d4cdf61a61abab79789c9ad5320bd1e2d56a (diff)
downloadrust-1b38776c1f68c6fd47c1b2f7b7974efc7dd64901.tar.gz
rust-1b38776c1f68c6fd47c1b2f7b7974efc7dd64901.zip
Auto merge of #38302 - Mark-Simulacrum:trans-cleanup, r=eddyb
Cleanup old trans

This is a cleanup of old trans, with the following main points:
 - Remove the `build.rs` API (prefer using `Builder` directly, which is now passed where needed through `BlockAndBuilder`).
 - Remove `Block` (inlining it into `BlockAndBuilder`)
 - Remove `Callee::call`, primarily through inlining and simplification of code.
 - Thinned `FunctionContext`:
   - `mir`, `debug_scopes`, `scopes`, and `fn_ty` are moved to `MirContext`.
   - `param_env` is moved to `SharedCrateContext` and renamed to `empty_param_env`.
   - `llretslotptr` is removed, replaced with more careful management of the return values in calls.
   - `landingpad_alloca` is inlined into cleanup.
   - `param_substs` are moved to `MirContext`.
   - `span` is removed, it was never set to anything but `None`.
   - `block_arena` and `lpad_arena` are removed, since neither was necessary (landing pads and block are quite small, and neither needs arena allocation).
 - Fixed `drop_in_place` not running other destructors in the same function.

Fixes #35566 (thanks to @est31 for confirming).
Diffstat (limited to 'src/liballoc')
-rw-r--r--src/liballoc/heap.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/liballoc/heap.rs b/src/liballoc/heap.rs
index 12809171b74..a1e32636980 100644
--- a/src/liballoc/heap.rs
+++ b/src/liballoc/heap.rs
@@ -127,6 +127,7 @@ pub fn usable_size(size: usize, align: usize) -> usize {
 pub const EMPTY: *mut () = 0x1 as *mut ();
 
 /// The allocator for unique pointers.
+// This function must not unwind. If it does, MIR trans will fail.
 #[cfg(not(test))]
 #[lang = "exchange_malloc"]
 #[inline]