cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
variable_sensitivity_object_factory.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: analyses variable-sensitivity
4
5
Author: Owen Jones owen.jones@diffblue.com
6
7
\*******************************************************************/
8
14
15
#ifndef CPROVER_ANALYSES_VARIABLE_SENSITIVITY_VARIABLE_SENSITIVITY_OBJECT_FACTORY_H
16
#define CPROVER_ANALYSES_VARIABLE_SENSITIVITY_VARIABLE_SENSITIVITY_OBJECT_FACTORY_H
17
18
#include "
abstract_object.h
"
19
#include "
variable_sensitivity_configuration.h
"
20
21
class
variable_sensitivity_object_factoryt
;
22
using
variable_sensitivity_object_factory_ptrt
=
23
std::shared_ptr<variable_sensitivity_object_factoryt>;
24
25
class
variable_sensitivity_object_factoryt
26
{
27
public
:
28
static
variable_sensitivity_object_factory_ptrt
29
configured_with
(
const
vsd_configt
&options)
30
{
31
return
std::make_shared<variable_sensitivity_object_factoryt>(options);
32
}
33
34
explicit
variable_sensitivity_object_factoryt
(
const
vsd_configt
&options)
35
:
configuration
{options},
heap_allocations
(0)
36
{
37
}
38
53
abstract_object_pointert
get_abstract_object
(
54
const
typet
&type,
55
bool
top,
56
bool
bottom,
57
const
exprt
&e,
58
const
abstract_environmentt
&environment,
59
const
namespacet
&ns)
const
;
60
61
abstract_object_pointert
62
wrap_with_context
(
const
abstract_object_pointert
&abstract_object)
const
;
63
64
variable_sensitivity_object_factoryt
() =
delete
;
65
variable_sensitivity_object_factoryt
(
66
const
variable_sensitivity_object_factoryt
&) =
delete
;
67
68
const
vsd_configt
&
config
()
const
69
{
70
return
configuration
;
71
}
72
73
private
:
80
ABSTRACT_OBJECT_TYPET
get_abstract_object_type
(
const
typet
&type)
const
;
81
82
vsd_configt
configuration
;
83
mutable
size_t
heap_allocations
;
84
};
85
86
#endif
// CPROVER_ANALYSES_VARIABLE_SENSITIVITY_VARIABLE_SENSITIVITY_OBJECT_FACTORY_H // NOLINT(*)
variable_sensitivity_object_factory_ptrt
std::shared_ptr< variable_sensitivity_object_factoryt > variable_sensitivity_object_factory_ptrt
Definition
abstract_environment.h:27
abstract_object.h
abstract_objectt is the top of the inheritance heirarchy of objects used to represent individual vari...
abstract_object_pointert
sharing_ptrt< class abstract_objectt > abstract_object_pointert
Definition
abstract_object.h:69
abstract_environmentt
Definition
abstract_environment.h:39
exprt
Base class for all expressions.
Definition
expr.h:57
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition
namespace.h:91
typet
The type of an expression, extends irept.
Definition
type.h:29
variable_sensitivity_object_factoryt
Definition
variable_sensitivity_object_factory.h:26
variable_sensitivity_object_factoryt::get_abstract_object
abstract_object_pointert get_abstract_object(const typet &type, bool top, bool bottom, const exprt &e, const abstract_environmentt &environment, const namespacet &ns) const
Get the appropriate abstract object for the variable under consideration.
Definition
variable_sensitivity_object_factory.cpp:142
variable_sensitivity_object_factoryt::config
const vsd_configt & config() const
Definition
variable_sensitivity_object_factory.h:68
variable_sensitivity_object_factoryt::variable_sensitivity_object_factoryt
variable_sensitivity_object_factoryt(const vsd_configt &options)
Definition
variable_sensitivity_object_factory.h:34
variable_sensitivity_object_factoryt::variable_sensitivity_object_factoryt
variable_sensitivity_object_factoryt(const variable_sensitivity_object_factoryt &)=delete
variable_sensitivity_object_factoryt::wrap_with_context
abstract_object_pointert wrap_with_context(const abstract_object_pointert &abstract_object) const
Definition
variable_sensitivity_object_factory.cpp:214
variable_sensitivity_object_factoryt::heap_allocations
size_t heap_allocations
Definition
variable_sensitivity_object_factory.h:83
variable_sensitivity_object_factoryt::configured_with
static variable_sensitivity_object_factory_ptrt configured_with(const vsd_configt &options)
Definition
variable_sensitivity_object_factory.h:29
variable_sensitivity_object_factoryt::configuration
vsd_configt configuration
Definition
variable_sensitivity_object_factory.h:82
variable_sensitivity_object_factoryt::get_abstract_object_type
ABSTRACT_OBJECT_TYPET get_abstract_object_type(const typet &type) const
Decide which abstract object type to use for the variable in question.
Definition
variable_sensitivity_object_factory.cpp:100
variable_sensitivity_object_factoryt::variable_sensitivity_object_factoryt
variable_sensitivity_object_factoryt()=delete
vsd_configt
Definition
variable_sensitivity_configuration.h:44
variable_sensitivity_configuration.h
Captures the user-supplied configuration for VSD, determining which domain abstractions are used,...
ABSTRACT_OBJECT_TYPET
ABSTRACT_OBJECT_TYPET
Definition
variable_sensitivity_configuration.h:20
variable_sensitivity_object_factory_ptrt
std::shared_ptr< variable_sensitivity_object_factoryt > variable_sensitivity_object_factory_ptrt
Definition
variable_sensitivity_object_factory.h:22
analyses
variable-sensitivity
variable_sensitivity_object_factory.h
Generated by
1.17.0