You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
a and b point to the same node. Converting them into assignments avoids this effect. This is because sea-dsa unifies the nodes pointed by memcpy's source and destination arguments if the element types contain pointers.
After reading the sea-dsa paper, I think I have a better understanding of this. The consequence of memcpy on this example is not that bad because unifying the nodes does not collapse them. However, copying a structure into a byte array could cause node collapse, which further spreads all over the program.
Consider the following program,
a
andb
point to the same node. Converting them into assignments avoids this effect. This is because sea-dsa unifies the nodes pointed bymemcpy
's source and destination arguments if the element types contain pointers.SeaHorn has a
memcpy
rewritten pass (https://github.com/seahorn/seahorn/blob/dev10/lib/Transforms/Scalar/PromoteMemcpy.cc), which we can borrow to avoid this issue.The text was updated successfully, but these errors were encountered: