Fix a buildbot failure due to the AST's lifetime ending before the test

llvm-svn: 365181
This commit is contained in:
Kristof Umann 2019-07-05 11:14:57 +00:00
parent 8b25d9bf01
commit 433edaed12
1 changed files with 3 additions and 17 deletions

View File

@ -86,24 +86,10 @@ TEST(CFG, ConditionExpr) {
return *(cfg->begin() + Index);
};
auto GetExprText = [] (const Expr *E) -> std::string {
// It's very awkward trying to recover the actual expression text without
// a real source file, so use this as a workaround. We know that the
// condition expression looks like this:
//
// ImplicitCastExpr 0xd07bf8 '_Bool' <LValueToRValue>
// `-DeclRefExpr 0xd07bd8 '_Bool' lvalue ParmVar 0xd07960 'C' '_Bool'
assert(isa<ImplicitCastExpr>(E));
assert(++E->child_begin() == E->child_end());
const auto *D = dyn_cast<DeclRefExpr>(*E->child_begin());
return D->getFoundDecl()->getNameAsString();
};
EXPECT_EQ(GetBlock(1)->getLastCondition(), nullptr);
EXPECT_EQ(GetExprText(GetBlock(4)->getLastCondition()), "A");
EXPECT_EQ(GetExprText(GetBlock(3)->getLastCondition()), "B");
EXPECT_EQ(GetExprText(GetBlock(2)->getLastCondition()), "C");
// Unfortunately, we can't check whether the correct Expr was returned by
// getLastCondition, because the lifetime of the AST ends by the time we
// retrieve the CFG.
//===--------------------------------------------------------------------===//