about summary refs log tree commit diff
path: root/src/rt/rust_try.ll
AgeCommit message (Collapse)AuthorLines
2015-07-21trans: Move rust_try into the compilerAlex Crichton-54/+0
This commit moves the IR files in the distribution, rust_try.ll, rust_try_msvc_64.ll, and rust_try_msvc_32.ll into the compiler from the main distribution. There's a few reasons for this change: * LLVM changes its IR syntax from time to time, so it's very difficult to have these files build across many LLVM versions simultaneously. We'll likely want to retain this ability for quite some time into the future. * The implementation of these files is closely tied to the compiler and runtime itself, so it makes sense to fold it into a location which can do more platform-specific checks for various implementation details (such as MSVC 32 vs 64-bit). * This removes LLVM as a build-time dependency of the standard library. This may end up becoming very useful if we move towards building the standard library with Cargo. In the immediate future, however, this commit should restore compatibility with LLVM 3.5 and 3.6.
2015-07-16rt: Move personality to functions from their landing padsRicho Healey-7/+10
This is for llvm/cc714e214298cfbf11de65b46de31900d51422cf
2015-06-27rt: Update comment for new location of unwindRicho Healey-1/+1
2014-12-18Avoid .take().unwrap() with FnOnce closuresAlex Crichton-4/+4
2014-12-18libs: merge librustrt into libstdAaron Turon-1/+1
This commit merges the `rustrt` crate into `std`, undoing part of the facade. This merger continues the paring down of the runtime system. Code relying on the public API of `rustrt` will break; some of this API is now available through `std::rt`, but is likely to change and/or be removed very soon. [breaking-change]
2014-08-05Added clarification regarding rust_try_inner.Vadim Chugunov-1/+2
2014-08-04Implement unwinding for Win64.Vadim Chugunov-9/+25
The original trick used to trigger unwinds would not work with GCC's implementation of SEH, so I had to invent a new one: rust_try now consists of two routines: the outer one, whose handler triggers unwinds, and the inner one, that stops unwinds by having a landing pad that swallows exceptions and passes them on to the outer routine via a normal return.
2013-12-24Stop using C++ exceptions for stack unwinding.Vadim Chugunov-0/+34