Domain_sig.With_Queries
module Query : sig ... end
should_focus ~size ctx mem addr
asks the domain whether it is useful to "focus" (or "unfold", i.e. try to represent precisely the memory region pointed to by addr
, as long as aliasing info ensures that it is sound) a loaded value. size
should be the size of addr
. If the answer is yes, then the returned value should contain three things about the region to focus: its base, its size (in bits) and the offset of addr
in it (in bits).
may_alias ~ptr_size ~size1 ~size2 ctx addr1 addr2
should return whether the region starting at addr1
of size size1
bytes and the region starting at addr2
of size size2
bytes may have a non-empty intersection. This function is used by focusing abstractions to discard a focused region when writing in a possibly aliased address. ptr_size
is the size in bits of both addr1
and addr2
.