From: Bill Wendling Date: Tue, 23 Aug 2011 22:55:03 +0000 (+0000) Subject: Don't replace *all* uses with the new stuff. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=fc8713ff74c2ed83d453057b24c578a0709fc180;p=oota-llvm.git Don't replace *all* uses with the new stuff. This is not necessarily the first or dominating use of the EH values. The IR breaks if it's not. So replace the specific value in the instruction with the new value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138406 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/SjLjEHPrepare.cpp b/lib/CodeGen/SjLjEHPrepare.cpp index 02c10493857..be491b13834 100644 --- a/lib/CodeGen/SjLjEHPrepare.cpp +++ b/lib/CodeGen/SjLjEHPrepare.cpp @@ -347,7 +347,7 @@ static void ReplaceLandingPadVal(Function &F, Instruction *Inst, Value *ExnAddr, continue; } - Inst->replaceAllUsesWith(CreateLandingPadLoad(F, ExnAddr, SelAddr, I)); + I->replaceUsesOfWith(Inst, CreateLandingPadLoad(F, ExnAddr, SelAddr, I)); } }