about summary refs log tree commit diff
path: root/src/libstd/alloc.rs
diff options
context:
space:
mode:
authorSimon Sapin <simon.sapin@exyr.org>2018-07-06 15:49:52 +0200
committerSimon Sapin <simon.sapin@exyr.org>2018-07-09 23:13:24 +0200
commit239ec7d2dce9c19de16c9ee64addbb834119397c (patch)
tree70a3ac0834334243abf684057a29cb292215021a /src/libstd/alloc.rs
parent872effa1183f404cc0df06e58034d05bf590cbad (diff)
downloadrust-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/alloc.rs')
-rw-r--r--src/libstd/alloc.rs3
1 files changed, 2 insertions, 1 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);