about summary refs log tree commit diff
path: root/src/liballoc
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2018-05-24 12:03:05 -0700
committerAlex Crichton <alex@alexcrichton.com>2018-05-24 12:03:05 -0700
commitf67453729c19b435686c94936d8145051e7f1284 (patch)
tree029525400c5744b7251bfaa55b8f04a6449bd5ee /src/liballoc
parenta76bff86e6f4b56b2c3fd1704ce8535ed207dd78 (diff)
downloadrust-f67453729c19b435686c94936d8145051e7f1284.tar.gz
rust-f67453729c19b435686c94936d8145051e7f1284.zip
std: Ensure OOM is classified as `nounwind`
OOM can't unwind today, and historically it's been optimized as if it can't
unwind. This accidentally regressed with recent changes to the OOM handler, so
this commit adds in a codegen test to assert that everything gets optimized away
after the OOM function is approrpiately classified as nounwind

Closes #50925
Diffstat (limited to 'src/liballoc')
-rw-r--r--src/liballoc/alloc.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/liballoc/alloc.rs b/src/liballoc/alloc.rs
index 79607b06f94..4ae8fc649dd 100644
--- a/src/liballoc/alloc.rs
+++ b/src/liballoc/alloc.rs
@@ -133,6 +133,7 @@ pub(crate) unsafe fn box_free<T: ?Sized>(ptr: Unique<T>) {
     }
 }
 
+#[rustc_allocator_nounwind]
 pub fn oom() -> ! {
     extern {
         #[lang = "oom"]