about summary refs log tree commit diff
path: root/src/libpanic_unwind/gcc.rs
AgeCommit message (Collapse)AuthorLines
2020-07-27mv std libs to library/mark-346/+0
2020-04-25Bump bootstrap compilerMark Rousskov-12/+0
2020-03-18fix pre-expansion linting infraMazdak Farrokhzad-2/+0
2020-03-05Use #[rustc_std_internal_symbol] instead of #[no_mangle]Amanieu d'Antras-5/+2
2020-03-05Remove eh_unwind_resume lang itemAmanieu d'Antras-9/+1
2020-03-02Apply review feedbackAmanieu d'Antras-2/+0
2020-03-02Inline catching panics into std::catch_unwindMark Rousskov-4/+1
This allows LLVM to inline the happy path, such that catching unwinding is zero-cost when no panic occurs. This also allows us to match the code generated by C++ try/catch.
2020-01-19Fix invalid link to C++ Exception Handling ABI documentationTianjiao Huang-1/+1
2020-01-11Abort if C++ tries to swallow a Rust panicAmanieu d'Antras-0/+1
2020-01-11Simplify exception cleanup for libunwind-style unwindingAmanieu d'Antras-6/+4
2020-01-06Auto merge of #66899 - msizanoen1:riscv-std, r=alexcrichtonbors-0/+3
Standard library support for riscv64gc-unknown-linux-gnu Add std support for RISC-V 64-bit GNU/Linux and update libc for RISC-V support. r? @alexcrichton
2020-01-01Update the barrier cache during ARM EHABI unwindingAmanieu d'Antras-1/+7
2020-01-01Add support for RISC-V 64-bit GNU/Linuxmsizanoen1-0/+3
2019-12-22Format the worldMark Rousskov-13/+18
2019-11-03Allow foreign exceptions to unwind through Rust codeAmanieu d'Antras-117/+160
2019-10-22Apply clippy::needless_return suggestionsMateusz MikuĊ‚a-6/+6
2019-07-22add support for hexagon-unknown-linux-muslBrian Cain-0/+3
2019-02-13libpanic_unwind => 2018Mazdak Farrokhzad-1/+1
2019-02-10rustc: doc commentsAlexander Regueiro-5/+5
2018-12-25Remove licensesMark Rousskov-10/+0
2018-12-07Various minor/cosmetic improvements to codeAlexander Regueiro-2/+2
2018-07-11Deny bare trait objects in in src/libpanic_unwindljedrz-3/+3
2018-05-18NetBSD on EABI ARM does not use ARM EHABIJonathan A. Kollasch-2/+2
2018-04-05Bump the bootstrap compiler to 1.26.0 betaAlex Crichton-2/+1
Holy cow that's a lot of `cfg(stage0)` removed and a lot of new stable language features!
2018-02-20make `#[unwind]` attribute specify expectations more clearlyNiko Matsakis-1/+2
You can now choose between the following: - `#[unwind(allowed)]` - `#[unwind(aborts)]` Per rust-lang/rust#48251, the default is `#[unwind(allowed)]`, though I think we should change this eventually.
2017-08-15use field init shorthand EVERYWHEREZack M. Davis-1/+1
Like #43008 (f668999), but _much more aggressive_.
2017-06-08std: Avoid panics in rust_eh_personalityAlex Crichton-3/+11
This commit removes a few calls to panic and/or assert in `rust_eh_personality`. This function definitely can't itself panic (that'd probably segfault or do something else weird) and I was also noticing that a `pub extern fn foo() {}` cdylib was abnormally large. Turns out all that size was the panicking machinery brought in by the personality function! The change here is to return a `Result` internally so we can bubble up the fatal error, eventually translating to the appropriate error code for the libunwind ABI.
2017-02-06std: Remove cfg(cargobuild) annotationsAlex Crichton-4/+0
These are all now no longer needed that we've only got rustbuild in tree.
2016-12-29libpanic_unwind: UNWIND_DATA_REG for sparc64Jonathan A. Kollasch-0/+3
2016-11-07Remove mention of mipsel target_archWang Xuerui-1/+1
The `mipsel` `target_arch` was introduced with the initial MIPSel support (rust-lang/rust@82ec1aef293ddc5c6373bd7f5ec323fafbdf7901), but was subsequently removed with implementation of the Flexible Target Specification (Rust RFC 0131, rust-lang/rust@3a8f4ec32a80d372db2d02c76acba0276c4effd0). This is the only remaining instance in rustc. All others are in the libc repo, and are fixed in rust-lang/libc@b3676593f6930c32d947c59e210789bbfcb30960.
2016-10-18run rustfmt on libpanic_unwindSrinivas Reddy Thatiparthy-8/+13
2016-10-08Rollup merge of #37031 - fitzgen:typo-in-gcc-rs-comment, r=alexcrichtonManish Goregaokar-1/+1
Fix a typo in a comment describing gcc.rs's eh_frame_registry module s/reigster/register/ r? @alexcrichton
2016-10-07Fix a typo in a comment describing gcc.rs's eh_frame_registry moduleNick Fitzgerald-1/+1
s/reigster/register/
2016-09-09Add s390x supportUlrich Weigand-0/+3
This adds support for building the Rust compiler and standard library for s390x-linux, allowing a full cross-bootstrap sequence to complete. This includes: - Makefile/configure changes to allow native s390x builds - Full Rust compiler support for the s390x C ABI (only the non-vector ABI is supported at this point) - Port of the standard library to s390x - Update the liblibc submodule to a version including s390x support - Testsuite fixes to allow clean "make check" on s390x Caveats: - Resets base cpu to "z10" to bring support in sync with the default behaviour of other compilers on the platforms. (Usually, upstream supports all older processors; a distribution build may then chose to require a more recent base version.) (Also, using zEC12 causes failures in the valgrind tests since valgrind doesn't fully support this CPU yet.) - z13 vector ABI is not yet supported. To ensure compatible code generation, the -vector feature is passed to LLVM. Note that this means that even when compiling for z13, no vector instructions will be used. In the future, support for the vector ABI should be added (this will require common code support for different ABIs that need different data_layout strings on the same platform). - Two test cases are (temporarily) ignored on s390x to allow passing the test suite. The underlying issues still need to be fixed: * debuginfo/simd.rs fails because of incorrect debug information. This seems to be a LLVM bug (also seen with C code). * run-pass/union/union-basic.rs simply seems to be incorrect for all big-endian platforms. Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
2016-08-27fix cross compilation of stdJorge Aparicio-1/+1
2016-08-19Remove old stage0 compatibilityBrian Anderson-24/+0
2016-07-24Implement ARM personality routine in Rust.Vadim Chugunov-112/+159
Remove the `eh_personality_catch` lang item. Use a simplified version of `cfg_if!` in libunwind.
2016-07-22Implement rust_eh_personality in Rust, remove rust_eh_personality_catch.Vadim Chugunov-93/+72
Well, not quite: ARM EHABI platforms still use the old scheme -- for now.
2016-07-12Use `ptr::{null, null_mut}` instead of `0 as *{const, mut}`Tobias Bucher-1/+2
2016-06-05run rustfmt on libpanic_unwind folderSrinivas Reddy Thatiparthy-96/+70
2016-05-09rustc: Implement custom panic runtimesAlex Crichton-0/+335
This commit is an implementation of [RFC 1513] which allows applications to alter the behavior of panics at compile time. A new compiler flag, `-C panic`, is added and accepts the values `unwind` or `panic`, with the default being `unwind`. This model affects how code is generated for the local crate, skipping generation of landing pads with `-C panic=abort`. [RFC 1513]: https://github.com/rust-lang/rfcs/blob/master/text/1513-less-unwinding.md Panic implementations are then provided by crates tagged with `#![panic_runtime]` and lazily required by crates with `#![needs_panic_runtime]`. The panic strategy (`-C panic` value) of the panic runtime must match the final product, and if the panic strategy is not `abort` then the entire DAG must have the same panic strategy. With the `-C panic=abort` strategy, users can expect a stable method to disable generation of landing pads, improving optimization in niche scenarios, decreasing compile time, and decreasing output binary size. With the `-C panic=unwind` strategy users can expect the existing ability to isolate failure in Rust code from the outside world. Organizationally, this commit dismantles the `sys_common::unwind` module in favor of some bits moving part of it to `libpanic_unwind` and the rest into the `panicking` module in libstd. The custom panic runtime support is pretty similar to the custom allocator support with the only major difference being how the panic runtime is injected (takes the `-C panic` flag into account).