Predicate storeStepImpl
Holds if data can flow from node1 to node2 via an assignment to f.
Thus, node2 references an object with a field f that contains the
value of node1.
The boolean certain is true if the destination address does not involve
any pointer arithmetic, and false otherwise. This has to do with whether a
store step can be used to clear a field (see clearsContent).
Import path
import semmle.code.cpp.ir.dataflow.internal.DataFlowPrivatepredicate storeStepImpl(Node node1, Content c, Node node2, boolean certain)