diff options
| author | David Majnemer <david.majnemer@gmail.com> | 2015-09-29 20:12:33 +0000 |
|---|---|---|
| committer | David Majnemer <david.majnemer@gmail.com> | 2015-09-29 20:12:33 +0000 |
| commit | a80c1512861aa78f75a89b92275aaf2e92ff7fb9 (patch) | |
| tree | b5d4c3efc67ff022eb8a71ad379dc01a1447a46f /llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | |
| parent | 81f005617e42e64b553a5ded37f1afac9b3fb4cc (diff) | |
| download | bcm5719-llvm-a80c1512861aa78f75a89b92275aaf2e92ff7fb9.tar.gz bcm5719-llvm-a80c1512861aa78f75a89b92275aaf2e92ff7fb9.zip | |
[WinEH] Teach AsmPrinter about funclets
Summary:
Funclets have been turned into functions by the time they hit the object
file. Make sure that they have decent names for the symbol table and
CFI directives explaining how to reason about their prologues.
Differential Revision: http://reviews.llvm.org/D13261
llvm-svn: 248824
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 141cc0fc6e8..52dbd5a9df4 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -2459,6 +2459,14 @@ static void emitBasicBlockLoopComments(const MachineBasicBlock &MBB, /// MachineBasicBlock, an alignment (if present) and a comment describing /// it if appropriate. void AsmPrinter::EmitBasicBlockStart(const MachineBasicBlock &MBB) const { + // End the previous funclet and start a new one. + if (MBB.isEHFuncletEntry()) { + for (const HandlerInfo &HI : Handlers) { + HI.Handler->endFunclet(); + HI.Handler->beginFunclet(MBB); + } + } + // Emit an alignment directive for this block, if needed. if (unsigned Align = MBB.getAlignment()) EmitAlignment(Align); |

