about summary refs log tree commit diff
path: root/src/libcore
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-09-14 11:05:34 +0000
committerbors <bors@rust-lang.org>2015-09-14 11:05:34 +0000
commit2d4ae52cbdca96d4dd6d5a009e4a5ef87a279df0 (patch)
tree782f1b598d547a1d7b62afe14809b84aa82d11f7 /src/libcore
parent664a45976fb5dd433766f73a221435883151d0ee (diff)
parent3ef75d5774cb9a7cf839a69341c620b98fa9c7df (diff)
downloadrust-2d4ae52cbdca96d4dd6d5a009e4a5ef87a279df0.tar.gz
rust-2d4ae52cbdca96d4dd6d5a009e4a5ef87a279df0.zip
Auto merge of #28358 - dotdash:nounwind, r=alexcrichton
This allows to skip the codegen for all the unneeded landing pads, reducing code size across the board by about 2-5%, depending on the crate. Compile times seem to be pretty unaffected though :-/
Diffstat (limited to 'src/libcore')
-rw-r--r--src/libcore/lib.rs1
-rw-r--r--src/libcore/panicking.rs1
2 files changed, 2 insertions, 0 deletions
diff --git a/src/libcore/lib.rs b/src/libcore/lib.rs
index 78a467e3657..94408072932 100644
--- a/src/libcore/lib.rs
+++ b/src/libcore/lib.rs
@@ -79,6 +79,7 @@
 #![feature(optin_builtin_traits)]
 #![feature(reflect)]
 #![feature(rustc_attrs)]
+#![feature(unwind_attributes)]
 #![cfg_attr(stage0, feature(simd))]
 #![cfg_attr(not(stage0), feature(repr_simd, platform_intrinsics))]
 #![feature(staged_api)]
diff --git a/src/libcore/panicking.rs b/src/libcore/panicking.rs
index b443ae0636f..93ddfa72f63 100644
--- a/src/libcore/panicking.rs
+++ b/src/libcore/panicking.rs
@@ -62,6 +62,7 @@ pub fn panic_fmt(fmt: fmt::Arguments, file_line: &(&'static str, u32)) -> ! {
     #[allow(improper_ctypes)]
     extern {
         #[lang = "panic_fmt"]
+        #[unwind]
         fn panic_impl(fmt: fmt::Arguments, file: &'static str, line: u32) -> !;
     }
     let (file, line) = *file_line;