1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00

The insertion point for the loads is right before the llvm.eh.exception

call. The call may be in the same BB as the landingpad instruction. If that's
the case, then inserting the loads after the landingpad inst, but before the
extractvalues, causes undefined behavior.

llvm-svn: 139088
This commit is contained in:
Bill Wendling 2011-09-04 09:02:18 +00:00
parent b98ae4dc68
commit dbea8de893

View File

@ -487,7 +487,7 @@ void llvm::UpgradeExceptionHandling(Module *M) {
std::pair<Value*,Value*> ExnSelSlots = FnToLPadSlotMap[Parent->getParent()];
IRBuilder<> Builder(Context);
Builder.SetInsertPoint(Parent, Parent->getFirstInsertionPt());
Builder.SetInsertPoint(Parent, Exn);
LoadInst *LPExn = Builder.CreateLoad(ExnSelSlots.first, "exn.load");
LoadInst *LPSel = Builder.CreateLoad(ExnSelSlots.second, "sel.load");