34 "Abstract states are only merged at reachable locations");
54 locationt from{trace_from->current_location()};
57 "Transformers are only applied at reachable locations");
59 if(from->is_start_thread())
84 "A location cannot be threaded if it is not reachable.");
103 is_threaded_analysis(goto_functions, ns);
This is the basic interface of the abstract interpreter with default implementations of the core func...
virtual cstate_ptrt abstract_state_before(locationt l) const
Get a copy of the abstract state before the given instruction, without needing to know what kind of d...
The interface offered by a domain, allows code to manipulate domains without knowing their exact type...
ai_history_baset::trace_ptrt trace_ptrt
goto_programt::const_targett locationt
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
A collection of goto functions.
function_mapt function_map
bool is_bottom() const override final
void transform(const irep_idt &, trace_ptrt trace_from, const irep_idt &, trace_ptrt, ai_baset &, const namespacet &) override
how function calls are treated: a) there is an edge from each call site to the function head b) there...
bool merge(const is_threaded_domaint &src, trace_ptrt, trace_ptrt)
void make_bottom() final override
no states
void make_entry() final override
Make this domain a reasonable entry-point state For most domains top is sufficient.
void make_top() final override
all states – the analysis doesn't use this directly (see make_entry) and domains may refuse to implem...
bool is_top() const override final
void compute(const goto_functionst &goto_functions)
is_threaded_sett is_threaded_set
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
#define forall_goto_program_instructions(it, program)
Over-approximate Concurrency for Threaded Goto Programs.
#define DATA_INVARIANT(CONDITION, REASON)
This condition should be used to document that assumptions that are made on goto_functions,...