Skip to content

Dataflow facts disappear when using PropagateOntoStrategy in backward analysis #729

@yuffon

Description

@yuffon

Hi,
Recently, I meet one issue when using PropagateOntoStrategy (branch f-IDESolverStrategy) for backward analysis.

My backward dataflow analysis is a specialized typestate analysis. Flow functions are as follows.

call-to-return: killall function
call flow: identity function
ret flow: identity function
summary and normal flow: advance automata.

The program structure is like the following.


//point 1
if(!callSomeFunction()){
    ......
}


void callSomeFunction(){
    //point 2
}

I have checked the dataflow results. At point 2, data flow facts are correct. But point 1 has no data flow facts. Since this is backward analysis. It seems like getCallFlowFunction kills all facts.
But I use identity function for both getRetFlowFunction or getCallFlowFunction.
I don't know whether this is a bug.

By the way, it seems that f-IDESolverStrategy has not been merged in to main branch.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions