cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
value_set_domain_fi.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: Value Set (Flow Insensitive)
4
5
Author: Daniel Kroening, kroening@kroening.com
6
CM Wintersteiger
7
8
\*******************************************************************/
9
12
13
#ifndef CPROVER_POINTER_ANALYSIS_VALUE_SET_DOMAIN_FI_H
14
#define CPROVER_POINTER_ANALYSIS_VALUE_SET_DOMAIN_FI_H
15
16
#include <
analyses/flow_insensitive_analysis.h
>
17
18
#include "
value_set_fi.h
"
19
20
class
value_set_domain_fit
:
public
flow_insensitive_abstract_domain_baset
21
{
22
public
:
23
value_set_fit
value_set
;
24
25
// overloading
26
27
// virtual bool merge(const value_set_domain_fit &other)
28
// {
29
// return value_set.make_union(other.value_set);
30
// }
31
32
void
output
(
const
namespacet
&ns, std::ostream &out)
const override
33
{
34
value_set
.output(ns, out);
35
}
36
37
void
initialize
(
const
namespacet
&)
override
38
{
39
value_set
.clear();
40
}
41
42
bool
transform
(
43
const
namespacet
&ns,
44
const
irep_idt
&function_from,
45
locationt
from_l,
46
const
irep_idt
&function_to,
47
locationt
to_l)
override
;
48
49
void
get_reference_set
(
50
const
namespacet
&ns,
51
const
exprt
&expr,
52
expr_sett
&expr_set)
override
53
{
54
value_set
.get_reference_set(expr, expr_set, ns);
55
}
56
57
void
clear
(
void
)
override
58
{
59
value_set
.clear();
60
}
61
};
62
63
#endif
// CPROVER_POINTER_ANALYSIS_VALUE_SET_DOMAIN_FI_H
exprt
Base class for all expressions.
Definition
expr.h:57
flow_insensitive_abstract_domain_baset::expr_sett
std::unordered_set< exprt, irep_hash > expr_sett
Definition
flow_insensitive_analysis.h:65
flow_insensitive_abstract_domain_baset::flow_insensitive_abstract_domain_baset
flow_insensitive_abstract_domain_baset()
Definition
flow_insensitive_analysis.h:39
flow_insensitive_abstract_domain_baset::locationt
goto_programt::const_targett locationt
Definition
flow_insensitive_analysis.h:44
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition
namespace.h:91
value_set_domain_fit
Definition
value_set_domain_fi.h:21
value_set_domain_fit::clear
void clear(void) override
Definition
value_set_domain_fi.h:57
value_set_domain_fit::initialize
void initialize(const namespacet &) override
Definition
value_set_domain_fi.h:37
value_set_domain_fit::transform
bool transform(const namespacet &ns, const irep_idt &function_from, locationt from_l, const irep_idt &function_to, locationt to_l) override
Definition
value_set_domain_fi.cpp:15
value_set_domain_fit::get_reference_set
void get_reference_set(const namespacet &ns, const exprt &expr, expr_sett &expr_set) override
Definition
value_set_domain_fi.h:49
value_set_domain_fit::output
void output(const namespacet &ns, std::ostream &out) const override
Definition
value_set_domain_fi.h:32
value_set_domain_fit::value_set
value_set_fit value_set
Definition
value_set_domain_fi.h:23
value_set_fit
Definition
value_set_fi.h:30
flow_insensitive_analysis.h
Flow Insensitive Static Analysis.
value_set_fi.h
Value Set (Flow Insensitive, Sharing).
irep_idt
dstringt irep_idt
Definition
verification_result.h:16
pointer-analysis
value_set_domain_fi.h
Generated by
1.17.0