|
CBMC
|
#include <global_may_alias.h>
Inheritance diagram for global_may_alias_domaint:
Collaboration diagram for global_may_alias_domaint:Public Types | |
| typedef union_find< irep_idt > | aliasest |
Public Types inherited from ai_domain_baset | |
| typedef goto_programt::const_targett | locationt |
| typedef ai_history_baset::trace_ptrt | trace_ptrt |
Public Member Functions | |
| global_may_alias_domaint () | |
| void | transform (const irep_idt &function_from, trace_ptrt trace_from, const irep_idt &function_to, trace_ptrt trace_to, ai_baset &ai, const namespacet &ns) final override |
| Abstract Interpretation domain transform function. More... | |
| void | output (std::ostream &out, const ai_baset &ai, const namespacet &ns) const final override |
| Abstract Interpretation domain output function. More... | |
| bool | merge (const global_may_alias_domaint &b, trace_ptrt from, trace_ptrt to) |
| Abstract Interpretation domain merge function. More... | |
| void | make_bottom () final override |
| Clear list of aliases, and mark domain as bottom. More... | |
| void | make_top () final override |
| Clear list of aliases, and mark domain as top. More... | |
| void | make_entry () final override |
| Make this domain a reasonable entry-point state. More... | |
| bool | is_bottom () const final override |
| Returns true if domain is bottom. More... | |
| bool | is_top () const final override |
| Returns false if domain is top. More... | |
Public Member Functions inherited from ai_domain_baset | |
| virtual | ~ai_domain_baset () |
| virtual jsont | output_json (const ai_baset &ai, const namespacet &ns) const |
| virtual xmlt | output_xml (const ai_baset &ai, const namespacet &ns) const |
| virtual bool | ai_simplify (exprt &condition, const namespacet &) const |
| also add More... | |
| virtual bool | ai_simplify_lhs (exprt &condition, const namespacet &ns) const |
| Simplifies the expression but keeps it as an l-value. More... | |
| virtual exprt | to_predicate (void) const |
| Gives a Boolean condition that is true for all values represented by the domain. More... | |
Public Attributes | |
| aliasest | aliases |
Private Member Functions | |
| void | assign_lhs_aliases (const exprt &, const std::set< irep_idt > &) |
| Populate list of aliases for a given identifier in a context in which an object is being written to. More... | |
| void | get_rhs_aliases (const exprt &, std::set< irep_idt > &) |
| Populate list of aliases for a given identifier in a context in which is an object is being read. More... | |
| void | get_rhs_aliases_address_of (const exprt &, std::set< irep_idt > &) |
| Specialisation of global_may_alias_domaint::get_rhs_aliases to deal with address_of expressions. More... | |
Private Attributes | |
| tvt | has_values |
Additional Inherited Members | |
Protected Member Functions inherited from ai_domain_baset | |
| ai_domain_baset () | |
| The constructor is expected to produce 'false' or 'bottom' A default constructor is not part of the domain interface. More... | |
| ai_domain_baset (const ai_domain_baset &old) | |
| A copy constructor is part of the domain interface. More... | |
Definition at line 22 of file global_may_alias.h.
Definition at line 86 of file global_may_alias.h.
|
inline |
Definition at line 25 of file global_may_alias.h.
|
private |
Populate list of aliases for a given identifier in a context in which an object is being written to.
| lhs | A left hand side expression, containing an identifier. |
| alias_set | An external set of aliases to populate internal aliases set. |
Definition at line 21 of file global_may_alias.cpp.
|
private |
Populate list of aliases for a given identifier in a context in which is an object is being read.
| rhs | A right hand side expression. |
| alias_set | A external set of aliases to populate internal aliases set. |
Definition at line 43 of file global_may_alias.cpp.
|
private |
Specialisation of global_may_alias_domaint::get_rhs_aliases to deal with address_of expressions.
| rhs | A right hand side expression. |
| alias_set | A external set of aliases to populate internal aliases set. |
Definition at line 76 of file global_may_alias.cpp.
|
inlinefinaloverridevirtual |
Returns true if domain is bottom.
Implements ai_domain_baset.
Definition at line 71 of file global_may_alias.h.
|
inlinefinaloverridevirtual |
Returns false if domain is top.
Implements ai_domain_baset.
Definition at line 79 of file global_may_alias.h.
|
inlinefinaloverridevirtual |
Clear list of aliases, and mark domain as bottom.
Implements ai_domain_baset.
Definition at line 52 of file global_may_alias.h.
|
inlinefinaloverridevirtual |
Make this domain a reasonable entry-point state.
Implements ai_domain_baset.
Definition at line 65 of file global_may_alias.h.
|
inlinefinaloverridevirtual |
Clear list of aliases, and mark domain as top.
Implements ai_domain_baset.
Definition at line 59 of file global_may_alias.h.
| bool global_may_alias_domaint::merge | ( | const global_may_alias_domaint & | b, |
| trace_ptrt | from, | ||
| trace_ptrt | to | ||
| ) |
Abstract Interpretation domain merge function.
Definition at line 196 of file global_may_alias.cpp.
|
finaloverridevirtual |
Abstract Interpretation domain output function.
| out | A stream to dump domain state on. |
| ai | A reference to the currently active abstract interpreter. |
| ns | A namespace to resolve symbols during output. |
Reimplemented from ai_domain_baset.
Definition at line 158 of file global_may_alias.cpp.
|
finaloverridevirtual |
Abstract Interpretation domain transform function.
Implements ai_domain_baset.
Definition at line 95 of file global_may_alias.cpp.
| aliasest global_may_alias_domaint::aliases |
Definition at line 87 of file global_may_alias.h.
|
private |
Definition at line 90 of file global_may_alias.h.