// Add the barrier if requested.
if (NeedsBarrier)
- createBarrier(Loc, omp::Directive::OMPD_for, /* ForceSimpleCall */ false,
+ createBarrier(LocationDescription(Builder.saveIP(), Loc.DL),
+ omp::Directive::OMPD_for, /* ForceSimpleCall */ false,
/* CheckCancelFlag */ false);
CLI->assertOK();
// increment and in the statement that adds the lower bound to it.
Value *IV = CLI->getIndVar();
EXPECT_EQ(std::distance(IV->use_begin(), IV->use_end()), 3);
+
+ // The exit block should contain the "fini" call and the barrier call,
+ // plus the call to obtain the thread ID.
+ BasicBlock *ExitBlock = CLI->getExit();
+ size_t NumCallsInExitBlock =
+ count_if(*ExitBlock, [](Instruction &I) { return isa<CallInst>(I); });
+ EXPECT_EQ(NumCallsInExitBlock, 3u);
}
TEST_F(OpenMPIRBuilderTest, MasterDirective) {