当前位置: 首页>>代码示例>>C++>>正文


C++ BindingsTy::lookup方法代码示例

本文整理汇总了C++中BindingsTy::lookup方法的典型用法代码示例。如果您正苦于以下问题:C++ BindingsTy::lookup方法的具体用法?C++ BindingsTy::lookup怎么用?C++ BindingsTy::lookup使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在BindingsTy的用法示例。


在下文中一共展示了BindingsTy::lookup方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: InvalidateRegion

Store BasicStoreManager::InvalidateRegion(Store store,
        const MemRegion *R,
        const Expr *E,
        unsigned Count,
        InvalidatedSymbols *IS) {
    R = R->StripCasts();

    if (!(isa<VarRegion>(R) || isa<ObjCIvarRegion>(R)))
        return store;

    if (IS) {
        BindingsTy B = GetBindings(store);
        if (BindingsTy::data_type *Val = B.lookup(R)) {
            if (SymbolRef Sym = Val->getAsSymbol())
                IS->insert(Sym);
        }
    }

    QualType T = cast<TypedRegion>(R)->getValueType(R->getContext());
    SVal V = ValMgr.getConjuredSymbolVal(R, E, T, Count);
    return Bind(store, loc::MemRegionVal(R), V);
}
开发者ID:nishantcbse,项目名称:clamav-bytecode-compiler,代码行数:22,代码来源:BasicStore.cpp

示例2: Retrieve

SVal BasicStoreManager::Retrieve(Store store, Loc loc, QualType T) {
    if (isa<UnknownVal>(loc))
        return UnknownVal();

    assert(!isa<UndefinedVal>(loc));

    switch (loc.getSubKind()) {

    case loc::MemRegionKind: {
        const MemRegion* R = cast<loc::MemRegionVal>(loc).getRegion();

        if (!(isa<VarRegion>(R) || isa<ObjCIvarRegion>(R)))
            return UnknownVal();

        BindingsTy B = GetBindings(store);
        BindingsTy::data_type *Val = B.lookup(R);
        const TypedRegion *TR = cast<TypedRegion>(R);

        if (Val)
            return CastRetrievedVal(*Val, TR, T);

        SVal V = LazyRetrieve(store, TR);
        return V.isUnknownOrUndef() ? V : CastRetrievedVal(V, TR, T);
    }

    case loc::ConcreteIntKind:
        // Some clients may call GetSVal with such an option simply because
        // they are doing a quick scan through their Locs (potentially to
        // invalidate their bindings).  Just return Undefined.
        return UndefinedVal();

    default:
        assert (false && "Invalid Loc.");
        break;
    }

    return UnknownVal();
}
开发者ID:nishantcbse,项目名称:clamav-bytecode-compiler,代码行数:38,代码来源:BasicStore.cpp


注:本文中的BindingsTy::lookup方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。