diff options
| author | Simon Sapin <simon.sapin@exyr.org> | 2018-07-06 15:49:52 +0200 |
|---|---|---|
| committer | Simon Sapin <simon.sapin@exyr.org> | 2018-07-09 23:13:24 +0200 |
| commit | 239ec7d2dce9c19de16c9ee64addbb834119397c (patch) | |
| tree | 70a3ac0834334243abf684057a29cb292215021a /src/libstd | |
| parent | 872effa1183f404cc0df06e58034d05bf590cbad (diff) | |
| download | rust-239ec7d2dce9c19de16c9ee64addbb834119397c.tar.gz rust-239ec7d2dce9c19de16c9ee64addbb834119397c.zip | |
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 | 3 | ||||
| -rw-r--r-- | src/libstd/lib.rs | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/libstd/alloc.rs b/src/libstd/alloc.rs index cfdfbe1357d..8db365cd21d 100644 --- a/src/libstd/alloc.rs +++ b/src/libstd/alloc.rs @@ -125,7 +125,8 @@ 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 fn rust_oom(layout: Layout) -> ! { let hook = HOOK.load(Ordering::SeqCst); 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)] |
