Tests for IDESolver
test case for reusing a summary on caller side
package restructuring & initial test for BiDiSolver
Additional tests for BiDiSolver
Change to IDESolver to behave consistent in cases in which summaries can
be applied inside processCall and cases in which they are applied in
processExit, i.e., in the latter computeReturnFlowFunction was called
only once for multiple source values on the caller side.
store calling context in abstraction to enable context sensitive path
building
test case capturing that in the current implementation of BiDiIFDSSolver
the time at which paused edges are resumed is wrong (they are resumed
even if no fact abstractions are propagated to callers, as resuming
happens before computing the return flow function)
Fixed some concurrency issues in the BiDiIFDSSolver and IDESolver
Not removing keys of paused edges as it is not guaranteed that in the
meantime no other thread has added new entries to the set stored as
value of the map.
Removed unnecessary call to decrement before reset.
removed unused imports
Introducing wrapper method propagateUnbalancedReturnFlow, which by
default forwards to propagate, but is overridden in BiDi to enable
pausing edges at the correct time.
Using LeakKey to identify leaks not only on the basis of equal source
statements, but also equal call sites to which the flow leaks.
Merge branch 'tests/main' into develop