diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2009-07-31 19:36:47 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2009-07-31 19:36:47 +0000 |
commit | d21e55abce305c0c567c05b769e69c3cb0e2d36c (patch) | |
tree | 3d8963b838b3e50eab2f08133786d55b39513b61 | |
parent | 81acc554b9599bacf843e080dbf4c72fe88de0f7 (diff) | |
download | external_llvm-d21e55abce305c0c567c05b769e69c3cb0e2d36c.zip external_llvm-d21e55abce305c0c567c05b769e69c3cb0e2d36c.tar.gz external_llvm-d21e55abce305c0c567c05b769e69c3cb0e2d36c.tar.bz2 |
PR4662: Fix a crash introduced by the recent LLVMContext changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77716 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Transforms/Scalar/TailDuplication.cpp | 3 | ||||
-rw-r--r-- | test/Transforms/TailDup/2009-07-31-phicrash.ll | 14 |
2 files changed, 16 insertions, 1 deletions
diff --git a/lib/Transforms/Scalar/TailDuplication.cpp b/lib/Transforms/Scalar/TailDuplication.cpp index dccc3e6..5e54a69 100644 --- a/lib/Transforms/Scalar/TailDuplication.cpp +++ b/lib/Transforms/Scalar/TailDuplication.cpp @@ -360,7 +360,8 @@ void TailDup::eliminateUnconditionalBranch(BranchInst *Branch) { Instruction *Inst = BI++; if (isInstructionTriviallyDead(Inst)) Inst->eraseFromParent(); - else if (Constant *C = ConstantFoldInstruction(Inst, BI->getContext())) { + else if (Constant *C = ConstantFoldInstruction(Inst, + Inst->getContext())) { Inst->replaceAllUsesWith(C); Inst->eraseFromParent(); } diff --git a/test/Transforms/TailDup/2009-07-31-phicrash.ll b/test/Transforms/TailDup/2009-07-31-phicrash.ll new file mode 100644 index 0000000..6abd2a5 --- /dev/null +++ b/test/Transforms/TailDup/2009-07-31-phicrash.ll @@ -0,0 +1,14 @@ +; RUN: llvm-as < %s | opt -tailduplicate -disable-output +; PR4662 + +define void @a() { +BB: + br label %BB6 + +BB6: + %tmp9 = phi i64 [ 0, %BB ], [ 5, %BB34 ] + br label %BB34 + +BB34: + br label %BB6 +} |