CBMC
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | List of all members
ai_storage_baset Class Referenceabstract

This is the basic interface for storing domains. More...

#include <ai_storage.h>

+ Inheritance diagram for ai_storage_baset:

Public Types

 
typedef std::shared_ptr< statetstate_ptrt
 
typedef std::shared_ptr< const statetcstate_ptrt
 
 
 
 
typedef std::shared_ptr< trace_setttrace_set_ptrt
 
typedef std::shared_ptr< const trace_settctrace_set_ptrt
 
 

Public Member Functions

 
  Returns all of the histories that have reached the start of the instruction.
 
  Non-modifying access to the stored domains, used in the ai_baset public interface.
 
 
  Look up the analysis state for a given history, instantiating a new domain if required.
 
  Reset the abstract state.
 
  Notifies the storage that the user will not need the domain object(s) for this location.
 

Protected Member Functions

 

Detailed Description

This is the basic interface for storing domains.

The abstract interpreters should use this interface by default.

Definition at line 35 of file ai_storage.h.

Member Typedef Documentation

◆  cstate_ptrt

Definition at line 49 of file ai_storage.h.

◆  ctrace_set_ptrt

Definition at line 54 of file ai_storage.h.

◆  locationt

Definition at line 55 of file ai_storage.h.

◆  state_ptrt

Definition at line 48 of file ai_storage.h.

◆  statet

Definition at line 47 of file ai_storage.h.

◆  trace_ptrt

Definition at line 51 of file ai_storage.h.

◆  trace_set_ptrt

Definition at line 53 of file ai_storage.h.

◆  trace_sett

Definition at line 52 of file ai_storage.h.

◆  tracet

Definition at line 50 of file ai_storage.h.

Constructor & Destructor Documentation

◆  ai_storage_baset()

ai_storage_baset::ai_storage_baset ( )
inlineprotected

Definition at line 38 of file ai_storage.h.

◆  ~ai_storage_baset()

virtual ai_storage_baset::~ai_storage_baset ( )
inlinevirtual

Definition at line 43 of file ai_storage.h.

Member Function Documentation

◆  abstract_state_before() [1/2]

virtual cstate_ptrt ai_storage_baset::abstract_state_before ( locationt  l,
) const
pure virtual

Implemented in location_sensitive_storaget, and history_sensitive_storaget.

◆  abstract_state_before() [2/2]

virtual cstate_ptrt ai_storage_baset::abstract_state_before ( trace_ptrt  p,
) const
pure virtual

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

Implemented in location_sensitive_storaget, and history_sensitive_storaget.

◆  abstract_traces_before()

virtual ctrace_set_ptrt ai_storage_baset::abstract_traces_before ( locationt  l ) const
pure virtual

Returns all of the histories that have reached the start of the instruction.

Implemented in trace_map_storaget.

◆  clear()

virtual void ai_storage_baset::clear ( )
inlinevirtual

Reset the abstract state.

Reimplemented in trace_map_storaget, location_sensitive_storaget, and history_sensitive_storaget.

Definition at line 80 of file ai_storage.h.

◆  get_state()

virtual statet & ai_storage_baset::get_state ( trace_ptrt  p,
)
pure virtual

Look up the analysis state for a given history, instantiating a new domain if required.

Implemented in location_sensitive_storaget, and history_sensitive_storaget.

◆  prune()

virtual void ai_storage_baset::prune ( locationt  l )
inlinevirtual

Notifies the storage that the user will not need the domain object(s) for this location.

After this has been called abstract_state_before may return an over-approximation of the value and get_state may give an under-approximation (forcing recomputation). If there are multiple histories that reach this location all will be affected

Definition at line 91 of file ai_storage.h.


The documentation for this class was generated from the following file:

AltStyle によって変換されたページ (->オリジナル) /