зеркало из https://github.com/microsoft/clang-1.git
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:
Родитель
5dc7f8b2d6
Коммит
55aea31ee3
|
@ -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) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче