CBMC
|
Instrument Contracts. More...
#include "instrument_contracts.h"
#include <util/c_types.h>
#include <util/mathematical_expr.h>
#include <util/pointer_predicates.h>
#include <util/replace_symbol.h>
#include <util/std_code.h>
#include <goto-programs/goto_model.h>
#include <ansi-c/expr2c.h>
Go to the source code of this file.
Macros | |
#define | MAX_TEXT 20 |
Functions | |
std::optional< code_with_contract_typet > | get_contract (const irep_idt &function_identifier, const namespacet &ns) |
bool | has_contract (const irep_idt &function_identifier, const namespacet &ns) |
static std::string | expr2text (const exprt &src, const namespacet &ns) |
static exprt | make_address (exprt src) |
source_locationt | add_function (irep_idt function_identifier, source_locationt src) |
exprt | add_function (irep_idt function_identifier, exprt src) |
exprt | replace_source_location (exprt src, const source_locationt &source_location) |
static bool | is_symbol_member (const exprt &expr) |
exprt | assigns_match (const exprt &assigns, const exprt &lhs) |
static exprt | instantiate_contract_lambda (exprt src) |
static exprt | make_assigns_assertion (irep_idt function_identifier, const exprt::operandst &assigns, const exprt &lhs) |
static bool | is_procedure_local (const irep_idt &function_identifier, const exprt &lhs) |
static bool | is_old (const exprt &lhs) |
symbol_exprt | find_old_expr (const exprt &src, const std::string &prefix, std::vector< std::pair< symbol_exprt, exprt >> &old_exprs) |
exprt | replace_old (exprt src, const std::string &prefix, std::vector< std::pair< symbol_exprt, exprt >> &old_exprs) |
goto_programt | old_assignments (const std::vector< std::pair< symbol_exprt, exprt >> &old_exprs, const source_locationt &source_location) |
void | instrument_contract_checks (goto_functionst::function_mapt::value_type &f, const namespacet &ns) |
void | replace_function_calls_by_contracts (goto_functionst::function_mapt::value_type &f, const goto_modelt &goto_model) |
void | instrument_contracts (goto_modelt &goto_model) |
Instrument Contracts.
Definition in file instrument_contracts.cpp.
#define MAX_TEXT 20 |
Definition at line 24 of file instrument_contracts.cpp.
Definition at line 73 of file instrument_contracts.cpp.
source_locationt add_function | ( | irep_idt | function_identifier, |
source_locationt | src | ||
) |
Definition at line 64 of file instrument_contracts.cpp.
Definition at line 106 of file instrument_contracts.cpp.
|
static |
Definition at line 43 of file instrument_contracts.cpp.
symbol_exprt find_old_expr | ( | const exprt & | src, |
const std::string & | prefix, | ||
std::vector< std::pair< symbol_exprt, exprt >> & | old_exprs | ||
) |
Definition at line 211 of file instrument_contracts.cpp.
std::optional<code_with_contract_typet> get_contract | ( | const irep_idt & | function_identifier, |
const namespacet & | ns | ||
) |
Definition at line 27 of file instrument_contracts.cpp.
bool has_contract | ( | const irep_idt & | function_identifier, |
const namespacet & | ns | ||
) |
Definition at line 38 of file instrument_contracts.cpp.
Definition at line 137 of file instrument_contracts.cpp.
void instrument_contract_checks | ( | goto_functionst::function_mapt::value_type & | f, |
const namespacet & | ns | ||
) |
Definition at line 266 of file instrument_contracts.cpp.
void instrument_contracts | ( | goto_modelt & | goto_model | ) |
Definition at line 552 of file instrument_contracts.cpp.
|
static |
Definition at line 200 of file instrument_contracts.cpp.
Definition at line 183 of file instrument_contracts.cpp.
|
static |
Definition at line 96 of file instrument_contracts.cpp.
Definition at line 52 of file instrument_contracts.cpp.
|
static |
Definition at line 142 of file instrument_contracts.cpp.
goto_programt old_assignments | ( | const std::vector< std::pair< symbol_exprt, exprt >> & | old_exprs, |
const source_locationt & | source_location | ||
) |
Definition at line 248 of file instrument_contracts.cpp.
void replace_function_calls_by_contracts | ( | goto_functionst::function_mapt::value_type & | f, |
const goto_modelt & | goto_model | ||
) |
Definition at line 392 of file instrument_contracts.cpp.
exprt replace_old | ( | exprt | src, |
const std::string & | prefix, | ||
std::vector< std::pair< symbol_exprt, exprt >> & | old_exprs | ||
) |
Definition at line 229 of file instrument_contracts.cpp.
exprt replace_source_location | ( | exprt | src, |
const source_locationt & | source_location | ||
) |
Definition at line 84 of file instrument_contracts.cpp.