#include <LibCallSemantics.h>
Public Types | |
| enum | LocResult { Yes, No, Unknown } |
Public Attributes | |
| LocResult(* | isLocation )(CallSite CS, const Value *Ptr, unsigned Size) |
For example, the LibCallInfo may be set up to model the behavior of standard libm functions. The location that they may be interested in is an abstract location that represents errno for the current target. In this case, a location for errno is anything such that the predicate returns true. On Mac OS/X, this predicate would return true if the pointer is the result of a call to "__error()".
Locations can also be defined in a constant-sensitive way. For example, it is possible to define a location that returns true iff it is passed into the call as a specific argument. This is useful for modeling things like "printf", which can store to memory, but only through pointers passed with a 'n' constraint.
isLocation - Return a LocResult if the specified pointer refers to this location for the specified call site. This returns "Yes" if we can tell that the pointer *does definitely* refer to the location, "No" if we can tell that the location *definitely does not* refer to the location, and returns "Unknown" if we cannot tell for certain.
1.5.8