diff options
author | Reid Kleckner <rnk@google.com> | 2015-10-09 23:05:54 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2015-10-09 23:05:54 +0000 |
commit | eb7cd6c88928c617f2395b9e2ec262e4bfb43880 (patch) | |
tree | 35e7d3a76944a50208a3874c10e831e81d185e81 /llvm/lib/CodeGen | |
parent | 1fa4c1b1775256bdeec50a7339fc08d732a45f74 (diff) | |
download | bcm5719-llvm-eb7cd6c88928c617f2395b9e2ec262e4bfb43880.tar.gz bcm5719-llvm-eb7cd6c88928c617f2395b9e2ec262e4bfb43880.zip |
[SEH] Update SEH codegen tests to use the new IR
Also Fix a buglet where SEH tables had ranges that spanned funclets.
The remaining tests using the old landingpad IR are preparation tests,
and will be deleted along with the old preparation.
llvm-svn: 249917
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/WinException.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/WinException.cpp b/llvm/lib/CodeGen/AsmPrinter/WinException.cpp index a5172fdd7d7..63be0daa708 100644 --- a/llvm/lib/CodeGen/AsmPrinter/WinException.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/WinException.cpp @@ -458,6 +458,11 @@ void WinException::emitCSpecificHandlerTable(const MachineFunction *MF) { // the actions that would be taken in that state. This means our tables are // slightly bigger, which is OK. for (const auto &MBB : *MF) { + // Break out before we enter into a finally funclet. + // FIXME: We need to emit separate EH tables for cleanups. + if (MBB.isEHFuncletEntry() && &MBB != MF->begin()) + break; + for (InvokeRange &I : invoke_ranges(FuncInfo, MBB)) { // If this invoke is in the same state as the last invoke and there were // no non-throwing calls between it, extend the range to include both |