CBMC
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
custom_bitvector_analysist Class Reference

#include <custom_bitvector_analysis.h>

+ Inheritance diagram for custom_bitvector_analysist:
+ Collaboration diagram for custom_bitvector_analysist:

Public Types

 
- Public Types inherited from ait< custom_bitvector_domaint >
 
- Public Types inherited from ai_baset
 
 
 
 
 
 

Public Member Functions

 
void  check (const goto_modelt &, bool xml, std::ostream &)
 
exprt  eval (const exprt &src, locationt loc)
 
 
- Public Member Functions inherited from ait< custom_bitvector_domaint >
  ait ()
 
  ait (std::unique_ptr< ai_domain_factory_baset > &&df)
 
  Find the analysis result for a given location.
 
- Public Member Functions inherited from ai_recursive_interproceduralt
  ai_recursive_interproceduralt (std::unique_ptr< ai_history_factory_baset > &&hf, std::unique_ptr< ai_domain_factory_baset > &&df, std::unique_ptr< ai_storage_baset > &&st, message_handlert &mh)
 
- Public Member Functions inherited from ai_baset
  ai_baset (std::unique_ptr< ai_history_factory_baset > &&hf, std::unique_ptr< ai_domain_factory_baset > &&df, std::unique_ptr< ai_storage_baset > &&st, message_handlert &mh)
 
 
void  operator() (const irep_idt &function_id, const goto_programt &goto_program, const namespacet &ns)
  Run abstract interpretation on a single function.
 
  Run abstract interpretation on a whole program.
 
  Run abstract interpretation on a whole program.
 
  Run abstract interpretation on a single function.
 
  Returns all of the histories that have reached the start of the instruction.
 
  Returns all of the histories that have reached the end of the instruction.
 
  Get a copy of the abstract state before the given instruction, without needing to know what kind of domain or history is used.
 
  Get a copy of the abstract state after the given instruction, without needing to know what kind of domain or history is used.
 
  The same interfaces but with histories.
 
 
  Reset the abstract state.
 
virtual void  output (const namespacet &ns, const irep_idt &function_id, const goto_programt &goto_program, std::ostream &out) const
  Output the abstract states for a single function.
 
  Output the abstract states for a single function as JSON.
 
virtual xmlt  output_xml (const namespacet &ns, const irep_idt &function_id, const goto_programt &goto_program) const
  Output the abstract states for a single function as XML.
 
virtual void  output (const namespacet &ns, const goto_functionst &goto_functions, std::ostream &out) const
  Output the abstract states for a whole program.
 
void  output (const goto_modelt &goto_model, std::ostream &out) const
  Output the abstract states for a whole program.
 
void  output (const namespacet &ns, const goto_functionst::goto_functiont &goto_function, std::ostream &out) const
  Output the abstract states for a function.
 
  Output the abstract states for the whole program as JSON.
 
  Output the abstract states for a whole program as JSON.
 
  Output the abstract states for a single function as JSON.
 
  Output the abstract states for a single function as JSON.
 
  Output the abstract states for the whole program as XML.
 
  Output the abstract states for the whole program as XML.
 
  Output the abstract states for a single function as XML.
 
  Output the abstract states for a single function as XML.
 

Public Attributes

 

Protected Member Functions

  Initialize all the abstract states for a whole program.
 
std::set< exprtaliases (const exprt &, locationt loc)
 
- Protected Member Functions inherited from ait< custom_bitvector_domaint >
 
  Get the state for the given history, creating it with the factory if it doesn't exist.
 
- Protected Member Functions inherited from ai_recursive_interproceduralt
 
- Protected Member Functions inherited from ai_baset
virtual void  initialize (const irep_idt &function_id, const goto_programt &goto_program)
  Initialize all the abstract states for a single function.
 
  Initialize all the abstract states for a single function.
 
  Override this to add a cleanup or post-processing step after fixedpoint has run.
 
  Set the abstract state of the entry location of a single function to the entry state required by the analysis.
 
  Set the abstract state of the entry location of a whole program to the entry state required by the analysis.
 
  Get the next location from the work queue.
 
 
  Run the fixedpoint algorithm until it reaches a fixed point.
 
 
  Perform one step of abstract interpretation from trace t Depending on the instruction type it may compute a number of "edges" or applications of the abstract transformer.
 
 
 
 
  Merge the state src, flowing from tracet from to tracet to, into the state currently stored for tracet to.
 
virtual std::unique_ptr< statetmake_temporary_state (const statet &s)
  Make a copy of a state.
 

Protected Attributes

 
- Protected Attributes inherited from ai_baset
  For creating history objects.
 
  For creating domain objects.
 
std::unique_ptr< ai_storage_basetstorage
 
 

Friends

 

Additional Inherited Members

- Protected Types inherited from ai_baset
  The work queue, sorted using the history's ordering operator.
 

Detailed Description

Definition at line 143 of file custom_bitvector_analysis.h.

Member Typedef Documentation

◆  bitst

Definition at line 158 of file custom_bitvector_analysis.h.

Member Function Documentation

◆  aliases()

std::set< exprt > custom_bitvector_analysist::aliases ( const exprtsrc,
locationt  loc 
)
protected

Definition at line 192 of file custom_bitvector_analysis.cpp.

◆  check()

void custom_bitvector_analysist::check ( const goto_modeltgoto_model,
bool  xml,
std::ostream &  out 
)

Definition at line 771 of file custom_bitvector_analysis.cpp.

◆  eval()

exprt custom_bitvector_analysist::eval ( const exprtsrc,
locationt  loc 
)
inline

Definition at line 151 of file custom_bitvector_analysis.h.

◆  get_bit_nr()

unsigned custom_bitvector_analysist::get_bit_nr ( const exprtstring_expr )

Definition at line 177 of file custom_bitvector_analysis.cpp.

◆  initialize()

virtual void custom_bitvector_analysist::initialize ( const goto_functionstgoto_functions )
inlineprotectedvirtual

Initialize all the abstract states for a whole program.

Override this to do custom per-analysis initialization.

Reimplemented from ai_baset.

Definition at line 162 of file custom_bitvector_analysis.h.

◆  instrument()

void custom_bitvector_analysist::instrument ( goto_functionst &  )

Definition at line 767 of file custom_bitvector_analysis.cpp.

Friends And Related Symbol Documentation

◆  custom_bitvector_domaint

Definition at line 168 of file custom_bitvector_analysis.h.

Member Data Documentation

◆  bits

bitst custom_bitvector_analysist::bits

Definition at line 159 of file custom_bitvector_analysis.h.

◆  local_may_alias_factory

local_may_alias_factoryt custom_bitvector_analysist::local_may_alias_factory
protected

Definition at line 170 of file custom_bitvector_analysis.h.


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

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