]> git.lizzy.rs Git - rust.git/commit
Implement unwinding for Win64.
authorVadim Chugunov <vadimcn@gmail.com>
Thu, 10 Apr 2014 17:48:38 +0000 (10:48 -0700)
committerVadim Chugunov <vadimcn@gmail.com>
Tue, 5 Aug 2014 01:27:23 +0000 (18:27 -0700)
commit5a24ee8a9ef1bb3bf250ce39902cf8dfca1a4dea
tree1cbca1cbc7baaa9e1887fefbe2977ce446338c4f
parenta12b23521fd5cc826a787a45cfa6630857a8939e
Implement unwinding for Win64.
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.
src/librustrt/libunwind.rs
src/librustrt/unwind.rs
src/rt/rust_try.ll