|
cprover
|
#include <custom_bitvector_analysis.h>
Public Types | |
| typedef numbering< irep_idt > | bitst |
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 namespacet &, const goto_functionst &, 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_domaint & | operator[] (locationt l) |
| const custom_bitvector_domaint & | operator[] (locationt l) const |
| void | clear () override |
Public Member Functions inherited from ai_baset | |
| ai_baset () | |
| virtual | ~ai_baset () |
| void | operator() (const goto_programt &goto_program, const namespacet &ns) |
| 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 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< exprt > | aliases (const exprt &, locationt loc) |
Protected Member Functions inherited from ait< custom_bitvector_domaint > | |
| virtual statet & | get_state (locationt l) override |
| const statet & | find_state (locationt l) const override |
| bool | merge (const statet &src, locationt from, locationt to) override |
| statet * | make_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 &) |
| 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 |
Protected Attributes inherited from ai_baset | |
| recursion_sett | recursion_set |
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 > | state_mapt |
Protected Types inherited from ai_baset | |
| typedef std::map< unsigned, locationt > | working_sett |
| typedef std::set< irep_idt > | recursion_sett |
Definition at line 126 of file custom_bitvector_analysis.h.
Definition at line 142 of file custom_bitvector_analysis.h.
|
protected |
Definition at line 171 of file custom_bitvector_analysis.cpp.
References local_may_alias_factoryt::get(), irept::id(), loc, local_may_alias_factory, dereference_exprt::pointer(), to_dereference_expr(), and to_typecast_expr().
Referenced by custom_bitvector_domaint::transform().
| void custom_bitvector_analysist::check | ( | const namespacet & | ns, |
| const goto_functionst & | goto_functions, | ||
| bool | xml, | ||
| std::ostream & | out | ||
| ) |
Definition at line 684 of file custom_bitvector_analysis.cpp.
References dstringt::empty(), eval(), forall_goto_functions, forall_goto_program_instructions, from_expr(), custom_bitvector_domaint::has_get_must_or_may(), exprt::is_false(), exprt::is_true(), simplify_expr(), and xml().
Referenced by goto_instrument_parse_optionst::doit().
Definition at line 135 of file custom_bitvector_analysis.h.
References custom_bitvector_domaint::eval(), loc, and ait< custom_bitvector_domaint >::operator[]().
Referenced by check(), and taint_analysist::operator()().
| unsigned custom_bitvector_analysist::get_bit_nr | ( | const exprt & | string_expr | ) |
Definition at line 153 of file custom_bitvector_analysis.cpp.
References index_exprt::array(), bits, irept::get(), irept::id(), address_of_exprt::object(), typecast_exprt::op(), to_address_of_expr(), to_index_expr(), and to_typecast_expr().
Referenced by custom_bitvector_domaint::eval(), and custom_bitvector_domaint::transform().
|
inlineprotectedvirtual |
Reimplemented from ai_baset.
Definition at line 146 of file custom_bitvector_analysis.h.
References ai_baset::initialize(), and local_may_alias_factory.
| void custom_bitvector_analysist::instrument | ( | goto_functionst & | ) |
Definition at line 680 of file custom_bitvector_analysis.cpp.
|
friend |
Definition at line 152 of file custom_bitvector_analysis.h.
| bitst custom_bitvector_analysist::bits |
Definition at line 143 of file custom_bitvector_analysis.h.
Referenced by get_bit_nr(), and custom_bitvector_domaint::output().
|
protected |
Definition at line 154 of file custom_bitvector_analysis.h.
Referenced by aliases(), and initialize().