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/alloc.rs | |
| 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/alloc.rs')
| -rw-r--r-- | src/libstd/alloc.rs | 5 |
1 files changed, 3 insertions, 2 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 |
