PR4662: Fix a crash introduced by the recent LLVMContext changes.
authorEli Friedman <eli.friedman@gmail.com>
Fri, 31 Jul 2009 19:36:47 +0000 (19:36 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Fri, 31 Jul 2009 19:36:47 +0000 (19:36 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77716 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/TailDuplication.cpp
test/Transforms/TailDup/2009-07-31-phicrash.ll [new file with mode: 0644]

index dccc3e6ffb35c6dcac1dd3513bdf19b44953db1e..5e54a69bfa1484c8ae30c991a1d1afa4d7e73b28 100644 (file)
@@ -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 (file)
index 0000000..6abd2a5
--- /dev/null
@@ -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
+}