|
ESBMC
Efficient SMT-based Context-Bounded Model Checker
|
Functions | |
| expr2tc | gen_byte_memcpy (const expr2tc &src, const expr2tc &dst, const size_t num_of_bytes, const size_t src_offset, const size_t dst_offset) |
| Computes the equivalent object value when considering a memcpy operation on it. | |
| bool | is_alloca_return_value_name (const std::string &name) |
| Returns true iff name is the goto-program return-value temp for an alloca / __builtin_alloca call, i.e. | |
| expr2tc goto_symex_utils::gen_byte_memcpy | ( | const expr2tc & | src, |
| const expr2tc & | dst, | ||
| const size_t | num_of_bytes, | ||
| const size_t | src_offset, | ||
| const size_t | dst_offset ) |
Computes the equivalent object value when considering a memcpy operation on it.
| src | The source expression from which bytes are copied. |
| dst | The destination expression to which bytes are copied. |
| num_of_bytes | The number of bytes to copy from src to dst. |
| src_offset | The offset in src from which the bytes start. |
| dst_offset | The offset in dst at which the bytes are written. |
Usage Examples:
| bool goto_symex_utils::is_alloca_return_value_name | ( | const std::string & | name | ) |
Returns true iff name is the goto-program return-value temp for an alloca / __builtin_alloca call, i.e.
exactly matches <L1-prefix?>return_value$_alloca$<digits> or <L1-prefix?>return_value$___builtin_alloca$<digits>. Only these allocations die with their frame; the models' __ESBMC_alloca outlives it.
A previous substring-only check fired on any user identifier containing _alloca$ (e.g. a method literally named alloca$te), causing symex to free a non-alloca'd dynamic object. See #2095.