cprover
custom_bitvector_analysist Class Reference

#include <custom_bitvector_analysis.h>

Inheritance diagram for custom_bitvector_analysist:
[legend]
Collaboration diagram for custom_bitvector_analysist:
[legend]

Public Types

typedef numbering< irep_idtbitst
 
- Public Types inherited from ait< custom_bitvector_domaint >
typedef goto_programt::const_targett locationt
 
- Public Types inherited from ai_baset
typedef ai_domain_baset statet
 
typedef goto_programt::const_targett locationt
 

Public Member Functions

void instrument (goto_functionst &)
 
void check (const goto_modelt &, bool xml, std::ostream &)
 
exprt eval (const exprt &src, locationt loc)
 
unsigned get_bit_nr (const exprt &)
 
- Public Member Functions inherited from ait< custom_bitvector_domaint >
 ait ()
 
custom_bitvector_domaintoperator[] (locationt l)
 
const custom_bitvector_domaintoperator[] (locationt l) const
 
std::unique_ptr< statetabstract_state_before (locationt t) const override
 Accessing individual domains at particular locations (without needing to know what kind of domain or history is used) A pointer to a copy as the method should be const and there are some non-trivial cases including merging domains, etc. More...
 
void clear () override
 Resets the domain. More...
 
- Public Member Functions inherited from ai_baset
 ai_baset ()
 
virtual ~ai_baset ()
 
void operator() (const goto_programt &goto_program, const namespacet &ns)
 Running the interpreter. More...
 
void operator() (const goto_functionst &goto_functions, const namespacet &ns)
 
void operator() (const goto_modelt &goto_model)
 
void operator() (const goto_functionst::goto_functiont &goto_function, const namespacet &ns)
 
virtual std::unique_ptr< statetabstract_state_after (locationt l) const
 Returns the abstract state after the given instruction. More...
 
virtual void output (const namespacet &ns, const goto_functionst &goto_functions, std::ostream &out) const
 
void output (const goto_modelt &goto_model, std::ostream &out) const
 
void output (const namespacet &ns, const goto_programt &goto_program, std::ostream &out) const
 
void output (const namespacet &ns, const goto_functionst::goto_functiont &goto_function, std::ostream &out) const
 
virtual jsont output_json (const namespacet &ns, const goto_functionst &goto_functions) const
 Output the domains for the whole program as JSON. More...
 
jsont output_json (const goto_modelt &goto_model) const
 
jsont output_json (const namespacet &ns, const goto_programt &goto_program) const
 
jsont output_json (const namespacet &ns, const goto_functionst::goto_functiont &goto_function) const
 
virtual xmlt output_xml (const namespacet &ns, const goto_functionst &goto_functions) const
 Output the domains for the whole program as XML. More...
 
xmlt output_xml (const goto_modelt &goto_model) const
 
xmlt output_xml (const namespacet &ns, const goto_programt &goto_program) const
 
xmlt output_xml (const namespacet &ns, const goto_functionst::goto_functiont &goto_function) const
 

Public Attributes

bitst bits
 

Protected Member Functions

virtual void initialize (const goto_functionst &_goto_functions)
 
std::set< exprtaliases (const exprt &, locationt loc)
 
- Protected Member Functions inherited from ait< custom_bitvector_domaint >
virtual statetget_state (locationt l) override
 
const statetfind_state (locationt l) const override
 
bool merge (const statet &src, locationt from, locationt to) override
 
std::unique_ptr< statetmake_temporary_state (const statet &s) override
 
void fixedpoint (const goto_functionst &goto_functions, const namespacet &ns) override
 
- Protected Member Functions inherited from ai_baset
virtual void initialize (const goto_programt &)
 
virtual void initialize (const goto_functionst::goto_functiont &)
 
virtual void finalize ()
 
void entry_state (const goto_programt &)
 
void entry_state (const goto_functionst &)
 
virtual void output (const namespacet &ns, const goto_programt &goto_program, const irep_idt &identifier, std::ostream &out) const
 
virtual jsont output_json (const namespacet &ns, const goto_programt &goto_program, const irep_idt &identifier) const
 Output the domains for a single function as JSON. More...
 
virtual xmlt output_xml (const namespacet &ns, const goto_programt &goto_program, const irep_idt &identifier) const
 Output the domains for a single function as XML. More...
 
locationt get_next (working_sett &working_set)
 
void put_in_working_set (working_sett &working_set, locationt l)
 
bool fixedpoint (const goto_programt &goto_program, const goto_functionst &goto_functions, const namespacet &ns)
 
void sequential_fixedpoint (const goto_functionst &goto_functions, const namespacet &ns)
 
void concurrent_fixedpoint (const goto_functionst &goto_functions, const namespacet &ns)
 
bool visit (locationt l, working_sett &working_set, const goto_programt &goto_program, const goto_functionst &goto_functions, const namespacet &ns)
 
bool do_function_call_rec (locationt l_call, locationt l_return, const exprt &function, const exprt::operandst &arguments, const goto_functionst &goto_functions, const namespacet &ns)
 
bool do_function_call (locationt l_call, locationt l_return, const goto_functionst &goto_functions, const goto_functionst::function_mapt::const_iterator f_it, const exprt::operandst &arguments, const namespacet &ns)
 

Protected Attributes

local_may_alias_factoryt local_may_alias_factory
 
- Protected Attributes inherited from ait< custom_bitvector_domaint >
state_mapt state_map
 

Friends

class custom_bitvector_domaint
 

Additional Inherited Members

- Protected Types inherited from ait< custom_bitvector_domaint >
typedef std::unordered_map< locationt, custom_bitvector_domaint, const_target_hash, pointee_address_equaltstate_mapt
 
- Protected Types inherited from ai_baset
typedef std::map< unsigned, locationtworking_sett
 

Detailed Description

Definition at line 147 of file custom_bitvector_analysis.h.

Member Typedef Documentation

◆ bitst

Member Function Documentation

◆ aliases()

◆ check()

◆ eval()

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

◆ get_bit_nr()

◆ initialize()

virtual void custom_bitvector_analysist::initialize ( const goto_functionst _goto_functions)
inlineprotectedvirtual

Reimplemented from ai_baset.

Definition at line 166 of file custom_bitvector_analysis.h.

References ai_baset::initialize(), and local_may_alias_factory.

◆ instrument()

void custom_bitvector_analysist::instrument ( goto_functionst )

Definition at line 748 of file custom_bitvector_analysis.cpp.

Friends And Related Function Documentation

◆ custom_bitvector_domaint

friend class custom_bitvector_domaint
friend

Definition at line 172 of file custom_bitvector_analysis.h.

Member Data Documentation

◆ bits

bitst custom_bitvector_analysist::bits

Definition at line 163 of file custom_bitvector_analysis.h.

Referenced by get_bit_nr(), and custom_bitvector_domaint::output().

◆ local_may_alias_factory

local_may_alias_factoryt custom_bitvector_analysist::local_may_alias_factory
protected

Definition at line 174 of file custom_bitvector_analysis.h.

Referenced by aliases(), and initialize().


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