private static PointsToAnalysisResult?TryGetOrComputeResultForAnalysisContext(PointsToAnalysisContext analysisContext) { using var trackedEntitiesBuilder = new TrackedEntitiesBuilder(); var defaultPointsToValueGenerator = new DefaultPointsToValueGenerator(trackedEntitiesBuilder); var analysisDomain = new PointsToAnalysisDomain(defaultPointsToValueGenerator); var operationVisitor = new PointsToDataFlowOperationVisitor(trackedEntitiesBuilder, defaultPointsToValueGenerator, analysisDomain, analysisContext); var pointsToAnalysis = new PointsToAnalysis(analysisDomain, operationVisitor); return(pointsToAnalysis.TryGetOrComputeResultCore(analysisContext, cacheResult: true)); }
public PointsToAnalysisDomain(DefaultPointsToValueGenerator defaultPointsToValueGenerator) : base(new CorePointsToAnalysisDataDomain(defaultPointsToValueGenerator, PointsToAbstractValueDomainInstance)) { }
public CorePointsToAnalysisDataDomain(DefaultPointsToValueGenerator defaultPointsToValueGenerator, AbstractValueDomain <PointsToAbstractValue> valueDomain) : base(valueDomain, defaultPointsToValueGenerator.IsTrackedEntity, defaultPointsToValueGenerator.IsTrackedPointsToValue) { DefaultPointsToValueGenerator = defaultPointsToValueGenerator; }
public CorePointsToAnalysisDataDomain(DefaultPointsToValueGenerator defaultPointsToValueGenerator, AbstractValueDomain <PointsToAbstractValue> valueDomain) : base(valueDomain) { DefaultPointsToValueGenerator = defaultPointsToValueGenerator; }