Beispiel #1
0
                public bool LookupState(IMethodResult <Variable> mr, APC pc, out SimpleArrayAbstractDomain <BoxedVariable <Variable>, BoxedExpression> astate)
                {
                    astate = null;
                    ContainerAnalysis an = mr as ContainerAnalysis;

                    if (an == null)
                    {
                        return(false);
                    }

                    return(an.PreStateLookup(pc, out astate));
                }
Beispiel #2
0
                public bool AssignInParallel(IMethodResult <Variable> mr, ref SimpleArrayAbstractDomain <BoxedVariable <Variable>, BoxedExpression> astate, Dictionary <BoxedVariable <Variable>, FList <BoxedVariable <Variable> > > mapping, Converter <BoxedVariable <Variable>, BoxedExpression> convert)
                {
                    ContainerAnalysis an = mr as ContainerAnalysis;

                    if (an == null)
                    {
                        return(false);
                    }

                    astate.AssignInParallel(mapping, convert);
                    return(true);
                }
Beispiel #3
0
                public SimpleArrayAbstractDomain <BoxedVariable <Variable>, BoxedExpression> Join(IMethodResult <Variable> mr, SimpleArrayAbstractDomain <BoxedVariable <Variable>, BoxedExpression> astate1, SimpleArrayAbstractDomain <BoxedVariable <Variable>, BoxedExpression> astate2)
                {
                    ContainerAnalysis an = mr as ContainerAnalysis;

                    if (an == null)
                    {
                        return(null);
                    }

                    bool bWeaker;

                    return(an.Join(new Pair <APC, APC>(), astate1, astate2, out bWeaker, false));
                }
Beispiel #4
0
                public List <BoxedExpression> ExtractAssertions(
                    IMethodResult <Variable> mr,
                    SimpleArrayAbstractDomain <BoxedVariable <Variable>, BoxedExpression> astate,
                    IExpressionContext <APC, Local, Parameter, Method, Field, Type, ExternalExpression, Variable> context,
                    IDecodeMetaData <Local, Parameter, Method, Field, Property, Type, Attribute, Assembly> metaDataDecoder)
                {
                    ContainerAnalysis an = mr as ContainerAnalysis;

                    if (an == null)
                    {
                        return(null);
                    }

                    BoxedExpressionReader <APC, Local, Parameter, Method, Field, Property, Type, Variable, ExternalExpression, Attribute, Assembly> br = new BoxedExpressionReader <APC, Local, Parameter, Method, Field, Property, Type, Variable, ExternalExpression, Attribute, Assembly>(context, metaDataDecoder);

                    return(an.ToListOfBoxedExpressions(astate, br));
                }