|
cprover
|
#include <dfcc_lift_memory_predicates.h>
Public Member Functions | |
| dfcc_lift_memory_predicatest (goto_modelt &goto_model, dfcc_libraryt &library, dfcc_instrumentt &instrument, message_handlert &message_handler) | |
| std::set< irep_idt > | lift_predicates (std::set< irep_idt > &discovered_function_pointer_contracts) |
| Collects and lifts all user-defined memory predicates. | |
| void | fix_calls (goto_programt &program) |
| Fixes calls to user-defined memory predicates in the given program, by adding an address-of to arguments passed in lifted position. | |
| void | fix_calls (goto_programt &program, goto_programt::targett first_instruction, const goto_programt::targett &last_instruction) |
| Fixes calls to user-defined memory predicates in the given program, by adding an address-of to arguments passed in lifted position, between first_instruction (included) and last_instruction (excluded). | |
Protected Member Functions | |
| bool | calls_memory_predicates (const goto_programt &goto_program, const std::set< irep_idt > &predicates) |
Returns true iff goto_program calls core memory predicates. | |
| void | lift_predicate (const irep_idt &function_id, std::set< irep_idt > &discovered_function_pointer_contracts) |
| void | lift_parameters_and_update_body (const irep_idt &function_id, std::set< irep_idt > &discovered_function_pointer_contracts) |
| void | add_pointer_type (const irep_idt &function_id, const std::size_t parameter_rank, replace_symbolt &replace_lifted_param) |
| adds a pointer_type to the parameter of a function | |
| void | collect_parameters_to_lift (const irep_idt &function_id) |
| Computes the subset of function parameters of function_id that are passed directly to core predicates and must be lifted. | |
| bool | is_lifted_function (const irep_idt &function_id) |
| True if a function at least had one of its parameters lifted. | |
Protected Attributes | |
| goto_modelt & | goto_model |
| dfcc_libraryt & | library |
| dfcc_instrumentt & | instrument |
| messaget | log |
| std::map< irep_idt, std::set< std::size_t > > | lifted_parameters |
Definition at line 35 of file dfcc_lift_memory_predicates.h.
| dfcc_lift_memory_predicatest::dfcc_lift_memory_predicatest | ( | goto_modelt & | goto_model, |
| dfcc_libraryt & | library, | ||
| dfcc_instrumentt & | instrument, | ||
| message_handlert & | message_handler ) |
| goto_model | The goto model to process |
| library | The contracts instrumentation library |
| instrument | The DFCC instrumenter object |
| message_handler | Used for messages |
Definition at line 29 of file dfcc_lift_memory_predicates.cpp.
|
protected |
adds a pointer_type to the parameter of a function
| function_id | The function to update |
| parameter_rank | The parameter to update |
| replace_lifted_param | Symbol replacer (receives p ~> *p mappings) The parameter symbol gets updated in the symbol table and the function signature gets updated with the new type. |
Definition at line 289 of file dfcc_lift_memory_predicates.cpp.
|
protected |
Returns true iff goto_program calls core memory predicates.
or one of the functions found in predicates .
Definition at line 57 of file dfcc_lift_memory_predicates.cpp.
|
protected |
Computes the subset of function parameters of function_id that are passed directly to core predicates and must be lifted.
Definition at line 217 of file dfcc_lift_memory_predicates.cpp.
| void dfcc_lift_memory_predicatest::fix_calls | ( | goto_programt & | program | ) |
Fixes calls to user-defined memory predicates in the given program, by adding an address-of to arguments passed in lifted position.
Definition at line 407 of file dfcc_lift_memory_predicates.cpp.
| void dfcc_lift_memory_predicatest::fix_calls | ( | goto_programt & | program, |
| goto_programt::targett | first_instruction, | ||
| const goto_programt::targett & | last_instruction ) |
Fixes calls to user-defined memory predicates in the given program, by adding an address-of to arguments passed in lifted position, between first_instruction (included) and last_instruction (excluded).
Definition at line 412 of file dfcc_lift_memory_predicates.cpp.
|
protected |
True if a function at least had one of its parameters lifted.
True if a function had at least one of its parameters lifted.
Definition at line 42 of file dfcc_lift_memory_predicates.cpp.
|
protected |
Definition at line 330 of file dfcc_lift_memory_predicates.cpp.
|
protected |
Definition at line 375 of file dfcc_lift_memory_predicates.cpp.
| std::set< irep_idt > dfcc_lift_memory_predicatest::lift_predicates | ( | std::set< irep_idt > & | discovered_function_pointer_contracts | ) |
Collects and lifts all user-defined memory predicates.
| [out] | discovered_function_pointer_contracts | Set of function pointer contracts discovered during instrumentation |
Definition at line 81 of file dfcc_lift_memory_predicates.cpp.
|
protected |
Definition at line 68 of file dfcc_lift_memory_predicates.h.
|
protected |
Definition at line 70 of file dfcc_lift_memory_predicates.h.
|
protected |
Definition at line 69 of file dfcc_lift_memory_predicates.h.
|
protected |
Definition at line 73 of file dfcc_lift_memory_predicates.h.
|
protected |
Definition at line 71 of file dfcc_lift_memory_predicates.h.