|
cprover
|
#include "java_trace_validation.h"#include <algorithm>#include <goto-programs/goto_trace.h>#include <util/byte_operators.h>#include <util/expr_util.h>#include <util/pointer_expr.h>#include <util/simplify_expr.h>#include <util/std_expr.h>Go to the source code of this file.
Functions | |
| bool | check_symbol_structure (const exprt &expr) |
| static bool | may_be_lvalue (const exprt &expr) |
| std::optional< symbol_exprt > | get_inner_symbol_expr (exprt expr) |
| Recursively extracts the first operand of an expression until it reaches a symbol and returns it, or returns an empty optional. | |
| bool | check_member_structure (const member_exprt &expr) |
| bool | valid_lhs_expr_high_level (const exprt &lhs) |
| bool | valid_rhs_expr_high_level (const exprt &rhs) |
| bool | can_evaluate_to_constant (const exprt &expression) |
| bool | check_index_structure (const exprt &index_expr) |
| bool | check_struct_structure (const struct_exprt &expr) |
| bool | check_address_structure (const address_of_exprt &address) |
| bool | check_constant_structure (const constant_exprt &constant_expr) |
| static bool | check_annotated_pointer_constant_structure (const annotated_pointer_constant_exprt &constant_expr) |
| static void | check_lhs_assumptions (const exprt &lhs, const namespacet &ns, const validation_modet vm) |
| static void | check_rhs_assumptions (const exprt &rhs, const namespacet &ns, const validation_modet vm) |
| static void | check_step_assumptions (const goto_trace_stept &step, const namespacet &ns, const validation_modet vm) |
| void | check_trace_assumptions (const goto_tracet &trace, const namespacet &ns, const messaget &log, const bool run_check, const validation_modet vm) |
| Checks that the structure of each step of the trace matches certain criteria. | |
| bool can_evaluate_to_constant | ( | const exprt & | expression | ) |
Definition at line 78 of file java_trace_validation.cpp.
| bool check_address_structure | ( | const address_of_exprt & | address | ) |
Definition at line 118 of file java_trace_validation.cpp.
|
static |
Definition at line 133 of file java_trace_validation.cpp.
| bool check_constant_structure | ( | const constant_exprt & | constant_expr | ) |
Definition at line 124 of file java_trace_validation.cpp.
| bool check_index_structure | ( | const exprt & | index_expr | ) |
Definition at line 86 of file java_trace_validation.cpp.
|
static |
Definition at line 142 of file java_trace_validation.cpp.
| bool check_member_structure | ( | const member_exprt & | expr | ) |
Definition at line 52 of file java_trace_validation.cpp.
|
static |
Definition at line 206 of file java_trace_validation.cpp.
|
static |
Definition at line 303 of file java_trace_validation.cpp.
| bool check_struct_structure | ( | const struct_exprt & | expr | ) |
Definition at line 95 of file java_trace_validation.cpp.
| bool check_symbol_structure | ( | const exprt & | expr | ) |
Definition at line 21 of file java_trace_validation.cpp.
| void check_trace_assumptions | ( | const goto_tracet & | trace, |
| const namespacet & | ns, | ||
| const messaget & | log, | ||
| const bool | run_check = false, | ||
| const validation_modet | vm = validation_modet::INVARIANT ) |
Checks that the structure of each step of the trace matches certain criteria.
If it does not, throw an error. Intended to be called by the caller of build_goto_trace, for example java_multi_path_symex_checkert::build_full_trace()
Definition at line 314 of file java_trace_validation.cpp.
| std::optional< symbol_exprt > get_inner_symbol_expr | ( | exprt | expr | ) |
Recursively extracts the first operand of an expression until it reaches a symbol and returns it, or returns an empty optional.
Definition at line 39 of file java_trace_validation.cpp.
|
static |
Definition at line 29 of file java_trace_validation.cpp.
| bool valid_lhs_expr_high_level | ( | const exprt & | lhs | ) |
Definition at line 60 of file java_trace_validation.cpp.
| bool valid_rhs_expr_high_level | ( | const exprt & | rhs | ) |
Definition at line 67 of file java_trace_validation.cpp.