CBMC
|
The most conventional storage; one domain per location. More...
#include <ai_storage.h>
Public Member Functions | |
cstate_ptrt | abstract_state_before (trace_ptrt p, const ai_domain_factory_baset &fac) const override |
Non-modifying access to the stored domains, used in the ai_baset public interface. More... | |
cstate_ptrt | abstract_state_before (locationt l, const ai_domain_factory_baset &fac) const override |
statet & | get_state (trace_ptrt p, const ai_domain_factory_baset &fac) override |
Look up the analysis state for a given history, instantiating a new domain if required. More... | |
statet & | get_state (locationt l, const ai_domain_factory_baset &fac) |
void | clear () override |
Reset the abstract state. More... | |
Public Member Functions inherited from trace_map_storaget | |
ctrace_set_ptrt | abstract_traces_before (locationt l) const override |
Returns all of the histories that have reached the start of the instruction. More... | |
Public Member Functions inherited from ai_storage_baset | |
virtual | ~ai_storage_baset () |
virtual void | prune (locationt l) |
Notifies the storage that the user will not need the domain object(s) for this location. More... | |
Protected Types | |
typedef std::unordered_map< locationt, state_ptrt, const_target_hash, pointee_address_equalt > | state_mapt |
This is location sensitive so we store one domain per location. More... | |
Protected Types inherited from trace_map_storaget | |
typedef std::map< locationt, trace_set_ptrt, goto_programt::target_less_than > | trace_mapt |
Protected Member Functions | |
state_mapt & | internal (void) |
Protected Member Functions inherited from trace_map_storaget | |
void | register_trace (trace_ptrt p) |
Protected Member Functions inherited from ai_storage_baset | |
ai_storage_baset () | |
Protected Attributes | |
state_mapt | state_map |
friend | invariant_propagationt |
friend | dependence_grapht |
friend | variable_sensitivity_dependence_grapht |
Protected Attributes inherited from trace_map_storaget | |
trace_mapt | trace_map |
Additional Inherited Members | |
Public Types inherited from ai_storage_baset | |
typedef ai_domain_baset | statet |
typedef std::shared_ptr< statet > | state_ptrt |
typedef std::shared_ptr< const statet > | cstate_ptrt |
typedef ai_history_baset | tracet |
typedef ai_history_baset::trace_ptrt | trace_ptrt |
typedef ai_history_baset::trace_sett | trace_sett |
typedef std::shared_ptr< trace_sett > | trace_set_ptrt |
typedef std::shared_ptr< const trace_sett > | ctrace_set_ptrt |
typedef goto_programt::const_targett | locationt |
The most conventional storage; one domain per location.
Definition at line 153 of file ai_storage.h.
|
protected |
This is location sensitive so we store one domain per location.
Definition at line 162 of file ai_storage.h.
|
inlineoverridevirtual |
Implements ai_storage_baset.
Definition at line 182 of file ai_storage.h.
|
inlineoverridevirtual |
Non-modifying access to the stored domains, used in the ai_baset public interface.
In the case of un-analysed locals this should create a domain The history version is the primary version, the location one may simply join all of the histories that reach the given location
Implements ai_storage_baset.
Definition at line 175 of file ai_storage.h.
|
inlineoverridevirtual |
Reset the abstract state.
Reimplemented from trace_map_storaget.
Definition at line 218 of file ai_storage.h.
|
inline |
Definition at line 204 of file ai_storage.h.
|
inlineoverridevirtual |
Look up the analysis state for a given history, instantiating a new domain if required.
Implements ai_storage_baset.
Definition at line 193 of file ai_storage.h.
|
inlineprotected |
Definition at line 169 of file ai_storage.h.
|
protected |
Definition at line 167 of file ai_storage.h.
|
protected |
Definition at line 166 of file ai_storage.h.
|
protected |
Definition at line 163 of file ai_storage.h.
|
protected |
Definition at line 168 of file ai_storage.h.