diff options
| author | bors <bors@rust-lang.org> | 2018-07-10 15:20:17 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2018-07-10 15:20:17 +0000 |
| commit | ce45cbb053bdde569b49ef12125c26158cf2ca79 (patch) | |
| tree | 90e2ca421a883b698803526f7e2c1a20a018e3b2 /src/libstd | |
| parent | fc491526dd0b5d8c8c25faa6400599e08ede1907 (diff) | |
| parent | 239ec7d2dce9c19de16c9ee64addbb834119397c (diff) | |
| download | rust-ce45cbb053bdde569b49ef12125c26158cf2ca79.tar.gz rust-ce45cbb053bdde569b49ef12125c26158cf2ca79.zip | |
Auto merge of #52191 - SimonSapin:alloc_error_handler, r=alexcrichton
Implement #[alloc_error_handler] This to-be-stable attribute is equivalent to `#[lang = "oom"]`. It is required when using the `alloc` crate without the `std` crate. It is called by `handle_alloc_error`, which is in turned called by "infallible" allocations APIs such as `Vec::push`.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/alloc.rs | 5 | ||||
| -rw-r--r-- | src/libstd/lib.rs | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/libstd/alloc.rs b/src/libstd/alloc.rs index f6cecbea11f..8db365cd21d 100644 --- a/src/libstd/alloc.rs +++ b/src/libstd/alloc.rs @@ -125,9 +125,10 @@ fn default_alloc_error_hook(layout: Layout) { #[cfg(not(test))] #[doc(hidden)] -#[lang = "oom"] +#[cfg_attr(stage0, lang = "oom")] +#[cfg_attr(not(stage0), alloc_error_handler)] #[unstable(feature = "alloc_internals", issue = "0")] -pub extern fn rust_oom(layout: Layout) -> ! { +pub fn rust_oom(layout: Layout) -> ! { let hook = HOOK.load(Ordering::SeqCst); let hook: fn(Layout) = if hook.is_null() { default_alloc_error_hook diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index d73cb1f8349..fec14b8d67d 100644 --- a/src/libstd/lib.rs +++ b/src/libstd/lib.rs @@ -233,8 +233,9 @@ // std is implemented with unstable features, many of which are internal // compiler details that will never be stable #![feature(alloc)] -#![feature(allocator_api)] +#![feature(alloc_error_handler)] #![feature(alloc_system)] +#![feature(allocator_api)] #![feature(allocator_internals)] #![feature(allow_internal_unsafe)] #![feature(allow_internal_unstable)] |
