about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-08-28 01:20:17 +0000
committerbors <bors@rust-lang.org>2020-08-28 01:20:17 +0000
commit41aaa90c67cdb04cac7427756891ad04c3e0bebf (patch)
treed7cb34d5fc429af98cde7a794a1ab4eb22eb99cd /compiler/rustc_codegen_llvm/src
parent2aa741a9faf8519d3af98aba610677c8d2bc84a5 (diff)
parent239f833ed1842ce7ce5c9989871a9ce9b1ea3546 (diff)
downloadrust-41aaa90c67cdb04cac7427756891ad04c3e0bebf.tar.gz
rust-41aaa90c67cdb04cac7427756891ad04c3e0bebf.zip
Auto merge of #70212 - Amanieu:catch_foreign, r=Mark-Simulacrum
Abort when foreign exceptions are caught by catch_unwind

Prior to this PR, foreign exceptions were not caught by catch_unwind, and instead passed through invisibly. This represented a painful soundness hole in some libraries ([take_mut](https://github.com/Sgeo/take_mut/blob/master/src/lib.rs#L37)), which relied on `catch_unwind` to handle all possible exit paths from a closure.

With this PR, foreign exceptions are now caught by `catch_unwind` and will trigger an abort since catching foreign exceptions is currently UB according to the latest proposals by the FFI unwind project group.

cc @rust-lang/wg-ffi-unwind
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions