summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2015-10-09 23:05:54 +0000
committerReid Kleckner <rnk@google.com>2015-10-09 23:05:54 +0000
commiteb7cd6c88928c617f2395b9e2ec262e4bfb43880 (patch)
tree35e7d3a76944a50208a3874c10e831e81d185e81 /llvm/lib/CodeGen
parent1fa4c1b1775256bdeec50a7339fc08d732a45f74 (diff)
downloadbcm5719-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.cpp5
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
OpenPOWER on IntegriCloud