ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
value_set_analysist Class Reference

#include <value_set_analysis.h>

Inheritance diagram for value_set_analysist:
[legend]

Public Types

typedef static_analysist< value_set_domaint > baset
using locationt = baset::locationt
Public Types inherited from value_setst
typedef std::list< expr2tc > valuest
typedef goto_programt::const_targett locationt
Public Types inherited from static_analysist< value_set_domaint >
typedef goto_programt::const_targett locationt
Public Types inherited from static_analysis_baset
typedef abstract_domain_baset statet
typedef goto_programt::const_targett locationt

Public Member Functions

 value_set_analysist (const namespacet &_ns)
void initialize (const goto_programt &goto_program) override
void initialize (const goto_functionst &goto_functions) override
void convert (const goto_programt &goto_program, const irep_idt &identifier, xmlt &dest) const
void get_globals (std::list< value_sett::entryt > &dest)
void get_entries_rec (const std::string &identifier, const std::string &suffix, const typet &type, std::list< value_sett::entryt > &dest)
void get_values (locationtlocationt l, const expr2tc &expr, value_setst::valuest &dest) override
void get_reference_set (locationtlocationt l, const expr2tc &expr, value_setst::valuest &dest) override
 The objects a dereference-style l-value may refer to, as object_descriptor2ts (or a raw unknown/invalid expression when no nameable object could be determined).
bool has_location (locationtlocationt l) const override
 True iff l carries points-to information; consumers must abstain when it does not.
Public Member Functions inherited from value_setst
 value_setst ()=default
virtual ~value_setst ()=default
Public Member Functions inherited from static_analysist< value_set_domaint >
 static_analysist (const namespacet &_ns)
value_set_domaint & operator[] (locationtlocationt l)
const value_set_domaint & operator[] (locationtlocationt l) const
void clear () override
Public Member Functions inherited from static_analysis_baset
 static_analysis_baset (const namespacet &_ns)
virtual void update (const goto_programt &goto_program)
virtual void update (const goto_functionst &goto_functions)
virtual void operator() (const goto_programt &goto_program)
virtual void operator() (const goto_functionst &goto_functions)
virtual ~static_analysis_baset ()=default
virtual void output (const goto_functionst &goto_functions, std::ostream &out) const
void output (const goto_programt &goto_program, std::ostream &out) const
void insert (locationtlocationt l)

Protected Member Functions

bool check_type (const typet &type)
void add_vars (const goto_functionst &goto_functions)
void add_vars (const goto_programt &goto_programa)
void get_entries (const symbolt &symbol, std::list< value_sett::entryt > &dest)
Protected Member Functions inherited from static_analysist< value_set_domaint >
statet & get_state (locationtlocationt l) override
const statet & get_state (locationtlocationt l) const override
bool merge (statet &a, const statet &b, bool keepnew=false) override
statet * make_temporary_state (statet &s) override
void generate_state (locationtlocationt l) override
void get_reference_set (locationtlocationt l, const expr2tc &expr, std::list< expr2tc > &dest) override
Protected Member Functions inherited from static_analysis_baset
virtual void output (const goto_programt &goto_program, const irep_idt &identifier, std::ostream &out) const
locationtlocationt get_next (working_sett &working_set)
void put_in_working_set (working_sett &working_set, locationtlocationt l)
bool fixedpoint (const goto_programt &goto_program, const goto_functionst &goto_functions)
bool fixedpoint (goto_functionst::function_mapt::const_iterator it, const goto_functionst &goto_functions)
void fixedpoint (const goto_functionst &goto_functions)
bool visit (locationtlocationt l, working_sett &working_set, const goto_programt &goto_program, const goto_functionst &goto_functions)
void generate_states (const goto_functionst &goto_functions)
void generate_states (const goto_programt &goto_program)
void do_function_call_rec (locationtlocationt l_call, const expr2tc &function, const std::vector< expr2tc > &arguments, statet &new_state, const goto_functionst &goto_functions)
void do_function_call (locationtlocationt l_call, const goto_functionst &goto_functions, const goto_functionst::function_mapt::const_iterator f_it, const std::vector< expr2tc > &arguments, statet &new_state)

Friends

void convert (const goto_functionst &goto_functions, const value_set_analysist &value_set_analysis, xmlt &dest)
void convert (const goto_programt &goto_program, const value_set_analysist &value_set_analysis, xmlt &dest)

Additional Inherited Members

Protected Types inherited from static_analysist< value_set_domaint >
typedef std::map< locationtlocationt, value_set_domaint > state_mapt
Protected Types inherited from static_analysis_baset
typedef std::map< unsigned, locationtlocationt > working_sett
typedef std::set< irep_idt > functions_donet
typedef std::set< irep_idt > recursion_sett
Static Protected Member Functions inherited from static_analysis_baset
static locationtlocationt successor (locationtlocationt l)
Protected Attributes inherited from static_analysist< value_set_domaint >
state_mapt state_map
Protected Attributes inherited from static_analysis_baset
const namespacet & ns
functions_donet functions_done
recursion_sett recursion_set
bool initialized

Member Typedef Documentation

◆ baset

◆ locationt

Constructor & Destructor Documentation

◆ value_set_analysist()

value_set_analysist::value_set_analysist ( const namespacet & _ns)
inlineexplicit

Member Function Documentation

◆ add_vars() [1/2]

void value_set_analysist::add_vars ( const goto_functionst & goto_functions)
protected

◆ add_vars() [2/2]

void value_set_analysist::add_vars ( const goto_programt & goto_programa)
protected

◆ check_type()

bool value_set_analysist::check_type ( const typet & type)
protected

◆ convert()

void value_set_analysist::convert ( const goto_programt & goto_program,
const irep_idt & identifier,
xmlt & dest ) const

◆ get_entries()

void value_set_analysist::get_entries ( const symbolt & symbol,
std::list< value_sett::entryt > & dest )
protected

◆ get_entries_rec()

void value_set_analysist::get_entries_rec ( const std::string & identifier,
const std::string & suffix,
const typet & type,
std::list< value_sett::entryt > & dest )

◆ get_globals()

void value_set_analysist::get_globals ( std::list< value_sett::entryt > & dest)

◆ get_reference_set()

void value_set_analysist::get_reference_set ( locationtlocationt l,
const expr2tc & expr,
value_setst::valuest & dest )
inlineoverridevirtual

The objects a dereference-style l-value may refer to, as object_descriptor2ts (or a raw unknown/invalid expression when no nameable object could be determined).

Implements value_setst.

◆ get_values()

void value_set_analysist::get_values ( locationtlocationt l,
const expr2tc & expr,
value_setst::valuest & dest )
inlineoverridevirtual

Implements value_setst.

◆ has_location()

bool value_set_analysist::has_location ( locationtlocationt l) const
inlineoverridevirtual

True iff l carries points-to information; consumers must abstain when it does not.

Implements value_setst.

◆ initialize() [1/2]

void value_set_analysist::initialize ( const goto_functionst & goto_functions)
overridevirtual

Reimplemented from static_analysis_baset.

◆ initialize() [2/2]

void value_set_analysist::initialize ( const goto_programt & goto_program)
overridevirtual

Reimplemented from static_analysis_baset.

◆ convert [1/2]

void convert ( const goto_functionst & goto_functions,
const value_set_analysist & value_set_analysis,
xmlt & dest )
friend

◆ convert [2/2]

void convert ( const goto_programt & goto_program,
const value_set_analysist & value_set_analysis,
xmlt & dest )
friend

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