mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-15 21:24:00 +00:00
Fix inlining to not lose the "cleanup" clause from landingpads
This fixes PR17872. This bug can lead to C++ destructors not being called when they should be, when an exception is thrown. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196711 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -238,6 +238,8 @@ static void HandleInlinedInvoke(InvokeInst *II, BasicBlock *FirstNewBlock,
|
||||
InlinedLPad->reserveClauses(OuterNum);
|
||||
for (unsigned OuterIdx = 0; OuterIdx != OuterNum; ++OuterIdx)
|
||||
InlinedLPad->addClause(OuterLPad->getClause(OuterIdx));
|
||||
if (OuterLPad->isCleanup())
|
||||
InlinedLPad->setCleanup(true);
|
||||
}
|
||||
|
||||
for (Function::iterator BB = FirstNewBlock, E = Caller->end(); BB != E; ++BB){
|
||||
|
Reference in New Issue
Block a user