|
ESBMC
Efficient SMT-based Context-Bounded Model Checker
|
State-hashing level2t. More...
#include <execution_state.h>
Public Types | |
| typedef std::map< irep_idt, std::size_t > | current_state_hashest |
| Public Types inherited from renaming::level2t | |
| typedef persistent_map< name_record, valuet, name_rec_hash > | current_namest |
Public Member Functions | |
| state_hashing_level2t (execution_statet &ref) | |
| ~state_hashing_level2t () override=default | |
| std::shared_ptr< renaming::level2t > | clone () const override |
| void | make_assignment (expr2tc &lhs_symbol, const expr2tc &const_value, const expr2tc &assigned_value) override |
| std::size_t | generate_l2_state_hash () const |
| Public Member Functions inherited from execution_statet::ex_state_level2t | |
| ex_state_level2t (execution_statet &ref) | |
| ~ex_state_level2t () override=default | |
| void | rename (expr2tc &lhs_symbol, unsigned count) override |
| void | rename (expr2tc &identifier) override |
| Public Member Functions inherited from renaming::level2t | |
| void | rename (expr2tc &expr) override |
| void | get_ident_name (expr2tc &symbol) const override |
| void | remove (const expr2tc &symbol) override |
| valuet | current_value (const name_record &rec) const |
| Get-or-default then re-store: the persistent map hands out immutable values, so a "modify the entry in place" site reads a copy, mutates it, and sets it back. | |
| void | retire (const name_record &rec) |
| Retire a name whose storage has gone out of scope. | |
| void | declare (const name_record &rec) |
| Record rec at its initial version. | |
| void | get_original_name (expr2tc &expr) const override |
| void | set_constant (const name_record &rec, const expr2tc &value) |
| Complete an assignment make_assignment has just made, whose value only its caller can build: #7597 re-offers a refused member write as a read of the L2 name make_assignment mints. | |
| unsigned | current_number (const expr2tc &sym) const |
| unsigned | current_number (const name_record &rec) const |
| level2t ()=default | |
| ~level2t () override=default | |
| virtual void | print (std::ostream &out) const |
| virtual void | dump () const |
| Public Member Functions inherited from renaming::renaming_levelt | |
| virtual | ~renaming_levelt ()=default |
Public Attributes | |
| current_state_hashest | current_hashes |
| Public Attributes inherited from execution_statet::ex_state_level2t | |
| execution_statet * | owner |
| Public Attributes inherited from renaming::level2t | |
| current_namest | current_names |
Additional Inherited Members | |
| Static Public Member Functions inherited from renaming::level2t | |
| static void | rename_to_record (expr2tc &sym, const name_record &rec) |
| Static Public Member Functions inherited from renaming::renaming_levelt | |
| static void | get_original_name (expr2tc &expr, symbol2t::renaming_level lev) |
| Protected Member Functions inherited from renaming::level2t | |
| virtual void | coveredinbees (expr2tc &lhs_sym, unsigned count, unsigned node_id) |
State-hashing level2t.
When using this level2t, any assignment made is caught, and the symbolic names are hashed. This is the primary handler for state hashing.
| typedef std::map<irep_idt, std::size_t> execution_statet::state_hashing_level2t::current_state_hashest |
| execution_statet::state_hashing_level2t::state_hashing_level2t | ( | execution_statet & | ref | ) |
|
overridedefault |
|
overridevirtual |
Reimplemented from execution_statet::ex_state_level2t.
| std::size_t execution_statet::state_hashing_level2t::generate_l2_state_hash | ( | ) | const |
|
overridevirtual |
Reimplemented from renaming::level2t.
| current_state_hashest execution_statet::state_hashing_level2t::current_hashes |