@@ -7852,4 +7852,28 @@ TEST_F(OpenMPIRBuilderTest, splitBB) {
78527852 EXPECT_TRUE (DL == AllocaBB->getTerminator ()->getStableDebugLoc ());
78537853}
78547854
7855+ TEST_F (OpenMPIRBuilderTest, spliceBBWithEmptyBB) {
7856+ OpenMPIRBuilder OMPBuilder (*M);
7857+ OMPBuilder.Config .IsTargetDevice = false ;
7858+ OMPBuilder.initialize ();
7859+ F->setName (" func" );
7860+ IRBuilder<> Builder (BB);
7861+
7862+ // Test calling spliceBB with an empty Block (but having trailing debug
7863+ // records).
7864+ DIBuilder DIB (*M);
7865+ DISubprogram *SP = F->getSubprogram ();
7866+ DIType *VoidPtrTy =
7867+ DIB.createQualifiedType (dwarf::DW_TAG_pointer_type, nullptr );
7868+ DILocalVariable *Var = DIB.createParameterVariable (
7869+ SP, " test" , /* ArgNo*/ 1 , SP->getFile (), /* LineNo=*/ 0 , VoidPtrTy);
7870+ DIB.insertDeclare (F->getArg (0 ), Var, DIB.createExpression (), DL,
7871+ Builder.GetInsertPoint ());
7872+ BasicBlock *New = BasicBlock::Create (Ctx, " " , F);
7873+ spliceBB (Builder.saveIP (), New, true , DL);
7874+ Instruction *Terminator = BB->getTerminator ();
7875+ EXPECT_NE (Terminator, nullptr );
7876+ EXPECT_FALSE (Terminator->getDbgRecordRange ().empty ());
7877+ }
7878+
78557879} // namespace
0 commit comments