Add a boring bit of boilerplate to start testing IRBuilder::CreateCondBr.
authorChandler Carruth <chandlerc@gmail.com>
Mon, 16 Jul 2012 07:44:51 +0000 (07:44 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Mon, 16 Jul 2012 07:44:51 +0000 (07:44 +0000)
This is in anticipation of changing CreateCondBr and wanting to test
those changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160250 91177308-0d34-0410-b5e6-96231b3b80d8

unittests/VMCore/IRBuilderTest.cpp

index 9be3ab9555d4392c8e7b69d4efc1dbe6c63f8a40..3eb5926d542de87faad7521d1b0108320399620d 100644 (file)
@@ -27,7 +27,7 @@ protected:
     M.reset(new Module("MyModule", getGlobalContext()));
     FunctionType *FTy = FunctionType::get(Type::getVoidTy(getGlobalContext()),
                                           /*isVarArg=*/false);
-    Function *F = Function::Create(FTy, Function::ExternalLinkage, "", M.get());
+    F = Function::Create(FTy, Function::ExternalLinkage, "", M.get());
     BB = BasicBlock::Create(getGlobalContext(), "", F);
   }
 
@@ -37,6 +37,7 @@ protected:
   }
 
   OwningPtr<Module> M;
+  Function *F;
   BasicBlock *BB;
 };
 
@@ -71,4 +72,17 @@ TEST_F(IRBuilderTest, Lifetime) {
   EXPECT_EQ(II_End1->getIntrinsicID(), Intrinsic::lifetime_end);
 }
 
+TEST_F(IRBuilderTest, CreateCondBr) {
+  IRBuilder<> Builder(BB);
+  BasicBlock *TBB = BasicBlock::Create(getGlobalContext(), "", F);
+  BasicBlock *FBB = BasicBlock::Create(getGlobalContext(), "", F);
+
+  BranchInst *BI = Builder.CreateCondBr(Builder.getTrue(), TBB, FBB);
+  TerminatorInst *TI = BB->getTerminator();
+  EXPECT_EQ(BI, TI);
+  EXPECT_EQ(2u, TI->getNumSuccessors());
+  EXPECT_EQ(TBB, TI->getSuccessor(0));
+  EXPECT_EQ(FBB, TI->getSuccessor(1));
+}
+
 }