CBMC
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
three_way_merge_abstract_interpreter.h
Go to the documentation of this file.
1/*******************************************************************\
2
3Module: Variable sensitivity domain
4
5Author: Martin Brain, martin.brain@cs.ox.ac.uk
6
7Date: August 2020
8
9\*******************************************************************/
10
21
22#ifndef CPROVER_ANALYSES_VARIABLE_SENSITIVITY_THREE_WAY_MERGE_ABSTRACT_INTERPRETER_H
23#define CPROVER_ANALYSES_VARIABLE_SENSITIVITY_THREE_WAY_MERGE_ABSTRACT_INTERPRETER_H
24
25#include <analyses/ai.h>
26
28{
29public:
31 std::unique_ptr<ai_history_factory_baset> &&hf,
32 std::unique_ptr<ai_domain_factory_baset> &&df,
33 std::unique_ptr<ai_storage_baset> &&st,
36 std::move(hf),
37 std::move(df),
38 std::move(st),
39 mh)
40 {
41 }
42
43protected:
44 // Like ai_recursive_interproceduralt we hook the handling of function calls.
45 // Much of this is the same as ai_recursive_interproceduralt's handling but
46 // on function return the three-way merge is used.
53 const goto_programt &callee,
54 const goto_functionst &goto_functions,
55 const namespacet &ns) override;
56};
57
58#endif
Abstract Interpretation.
goto_programt::const_targett locationt
Definition ai.h:124
ai_history_baset::trace_ptrt trace_ptrt
Definition ai.h:121
trace_sett working_sett
The work queue, sorted using the history's ordering operator.
Definition ai.h:414
ai_three_way_merget(std::unique_ptr< ai_history_factory_baset > &&hf, std::unique_ptr< ai_domain_factory_baset > &&df, std::unique_ptr< ai_storage_baset > &&st, message_handlert &mh)
bool visit_edge_function_call(const irep_idt &calling_function_id, trace_ptrt p_call, locationt l_return, const irep_idt &callee_function_id, working_sett &working_set, const goto_programt &callee, const goto_functionst &goto_functions, const namespacet &ns) override
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Definition ai.h:562
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Definition dstring.h:38
A collection of goto functions.
A generic container class for the GOTO intermediate representation of one function.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition namespace.h:91
STL namespace.