ait supplies three of the four components needed: an abstract interpreter (in this case handling function calls via recursion), a history factory (using the simplest possible history objects) and storage (one domain per location).
More...
#include <ai.h>
+ Inheritance diagram for ait< domainT >:
+ Collaboration diagram for ait< domainT >:
Find the analysis result for a given location.
- Public Member Functions inherited from
ai_baset
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.
Output the abstract states for a single function.
Output the abstract states for a single function as JSON.
Output the abstract states for a single function as XML.
Output the abstract states for a whole program.
Output the abstract states for a whole program.
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.
Protected Member Functions
Get the state for the given history, creating it with the factory if it doesn't exist.
- Protected Member Functions inherited from
ai_baset
Initialize all the abstract states for a single function.
Initialize all the abstract states for a single function.
Initialize all the abstract states for a whole program.
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.
Make a copy of a state.
This function exists to enforce that
domainT is derived from
ai_domain_baset.
Additional Inherited Members
- Protected Types inherited from
ai_baset
The work queue, sorted using the history's ordering operator.
- Protected Attributes inherited from
ai_baset
For creating history objects.
For creating domain objects.
Detailed Description
template<typename domainT>
class ait< domainT >
ait supplies three of the four components needed: an abstract interpreter (in this case handling function calls via recursion), a history factory (using the simplest possible history objects) and storage (one domain per location).
The fourth component, the domain, is provided by the template parameter. This is gives a "classical" abstract interpreter and is backwards compatible with older code.
- Template Parameters
-
domainT A type derived from
ai_domain_baset that represents the values in the AI domain
Definition at line 565 of file ai.h.
Member Typedef Documentation
◆ locationt
Definition at line 589 of file ai.h.
Constructor & Destructor Documentation
◆ ait() [1/2]
Definition at line 569 of file ai.h.
◆ ait() [2/2]
Definition at line 579 of file ai.h.
Member Function Documentation
◆ dummy()
This function exists to enforce that domainT is derived from ai_domain_baset.
Definition at line 626 of file ai.h.
◆ get_state() [1/2]
- Deprecated:
- "deprecated since " "2019" "-" "08" "-" "01" "; " "use get_state(trace_ptrt p) instead"
Definition at line 615 of file ai.h.
◆ get_state() [2/2]
Get the state for the given history, creating it with the factory if it doesn't exist.
Reimplemented from ai_baset.
Definition at line 519 of file ai.h.
◆ operator[]()
Find the analysis result for a given location.
- Deprecated:
- "deprecated since " "2019" "-" "08" "-" "01" "; " "use abstract_state_{before,after} instead"
Definition at line 597 of file ai.h.
Member Data Documentation
◆ no_logging
Definition at line 629 of file ai.h.
The documentation for this class was generated from the following file:
- /home/runner/work/cbmc/cbmc/src/analyses/ai.h