Added transfer function support for __builtin_expect.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47971 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Ted Kremenek 2008-03-05 22:59:42 +00:00
Родитель 5dc7f8b2d6
Коммит 55aea31ee3
1 изменённых файлов: 15 добавлений и 2 удалений

Просмотреть файл

@ -517,8 +517,21 @@ void GRExprEngine::VisitCall(CallExpr* CE, NodeTy* Pred,
IdentifierInfo* Info = cast<lval::FuncVal>(L).getDecl()->getIdentifier();
if (Info->getBuiltinID())
invalidateArgs = true;
if (unsigned id = Info->getBuiltinID()) {
switch (id) {
case Builtin::BI__builtin_expect: {
// For __builtin_expect, just return the value of the subexpression.
assert (CE->arg_begin() != CE->arg_end());
RVal X = GetRVal(St, *(CE->arg_begin()));
Nodify(Dst, CE, *DI, SetRVal(St, CE, X));
continue;
}
default:
invalidateArgs = true;
break;
}
}
}
if (invalidateArgs) {