diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2015-06-29 16:07:45 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2015-07-01 09:35:54 -0700 |
| commit | f9de964ccf767498ed7b1b4a879aaca1777a9d3d (patch) | |
| tree | 9a90e44f7b3c0e9b0738c41d1b360b5b4d139607 /src/rustllvm/ExecutionEngineWrapper.cpp | |
| parent | d4fe2a00276fa14a526409ccaee740ba01a17f3e (diff) | |
| download | rust-f9de964ccf767498ed7b1b4a879aaca1777a9d3d.tar.gz rust-f9de964ccf767498ed7b1b4a879aaca1777a9d3d.zip | |
msvc: Enable landing pads by default
This commit turns on landing pads for MSVC by default, which means that we'll now be running cleanups for values on the stack when an exception is thrown. This commit "fixes" the previously seen LLVM abort by attaching the `noinline` attribute to all generated drop glue to prevent landing pads from being inlined into other landing pads. The performance of MSVC is highly likely to decrease from this commit, but there are various routes we can taken in the future if this ends up staying for quite a while, such as generating a shim function only called from landing pads which calls the actual drop glue, and this shim is marked noinline. For now, however, this patch enables MSVC to successfully bootstrap itself!
Diffstat (limited to 'src/rustllvm/ExecutionEngineWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
