mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-22 12:08:33 +00:00
Dwarf EH prepare needs to be run after SjLj prepare. Otherwise,
catch info can get misplaced when a selector ends up more than one block removed from the parent invoke(s). This could happen when a landing pad is shared by multiple invokes and is also a target of a normal edge from elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93456 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
7659389d0d
commit
9f82da7cbf
@ -280,8 +280,8 @@ bool LLVMTargetMachine::addCommonCodeGenPasses(PassManagerBase &PM,
|
||||
{
|
||||
case ExceptionHandling::SjLj:
|
||||
// SjLj piggy-backs on dwarf for this bit. The cleanups done apply to both
|
||||
PM.add(createDwarfEHPass(getTargetLowering(), OptLevel==CodeGenOpt::None));
|
||||
PM.add(createSjLjEHPass(getTargetLowering()));
|
||||
PM.add(createDwarfEHPass(getTargetLowering(), OptLevel==CodeGenOpt::None));
|
||||
break;
|
||||
case ExceptionHandling::Dwarf:
|
||||
PM.add(createDwarfEHPass(getTargetLowering(), OptLevel==CodeGenOpt::None));
|
||||
|
Loading…
Reference in New Issue
Block a user