cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
havoc_assigns_clause_targets.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: Havoc multiple and possibly dependent targets simultaneously
4
5
Author: Remi Delmas, delmasrd@amazon.com
6
7
\*******************************************************************/
8
11
12
#ifndef CPROVER_GOTO_INSTRUMENT_CONTRACTS_HAVOC_ASSIGNS_CLAUSE_TARGETS_H
13
#define CPROVER_GOTO_INSTRUMENT_CONTRACTS_HAVOC_ASSIGNS_CLAUSE_TARGETS_H
14
15
#include "
instrument_spec_assigns.h
"
16
17
class
symbol_table_baset
;
18
class
goto_programt
;
19
class
goto_functionst
;
20
class
message_handlert
;
21
42
class
havoc_assigns_clause_targetst
:
public
instrument_spec_assignst
43
{
44
public
:
54
havoc_assigns_clause_targetst
(
55
const
irep_idt
&_function_id,
56
const
std::vector<exprt> &_targets,
57
const
goto_functionst
&_functions,
58
cfg_infot
&_cfg_info,
59
const
source_locationt
&_source_location,
60
symbol_table_baset
&_st,
61
message_handlert
&_message_handler)
62
:
instrument_spec_assignst
(
63
_function_id,
64
_functions,
65
_cfg_info,
66
_st,
67
_message_handler),
68
targets
(_targets),
69
source_location
(_source_location)
70
{
71
}
72
74
void
get_instructions
(
goto_programt
&dest);
75
76
private
:
115
void
havoc_if_valid
(
car_exprt
car,
goto_programt
&dest);
116
118
void
havoc_static_local
(
car_exprt
car,
goto_programt
&dest);
119
120
const
std::vector<exprt> &
targets
;
121
const
source_locationt
&
source_location
;
122
};
123
#endif
// CPROVER_GOTO_INSTRUMENT_CONTRACTS_HAVOC_ASSIGNS_CLAUSE_TARGETS_H
car_exprt
Class that represents a normalized conditional address range, with:
Definition
instrument_spec_assigns.h:74
cfg_infot
Stores information about a goto function computed from its CFG.
Definition
cfg_info.h:40
goto_functionst
A collection of goto functions.
Definition
goto_functions.h:25
goto_programt
A generic container class for the GOTO intermediate representation of one function.
Definition
goto_program.h:72
havoc_assigns_clause_targetst::targets
const std::vector< exprt > & targets
Definition
havoc_assigns_clause_targets.h:120
havoc_assigns_clause_targetst::havoc_if_valid
void havoc_if_valid(car_exprt car, goto_programt &dest)
Generates instructions to conditionally havoc the given conditional address range expression car,...
Definition
havoc_assigns_clause_targets.cpp:55
havoc_assigns_clause_targetst::havoc_assigns_clause_targetst
havoc_assigns_clause_targetst(const irep_idt &_function_id, const std::vector< exprt > &_targets, const goto_functionst &_functions, cfg_infot &_cfg_info, const source_locationt &_source_location, symbol_table_baset &_st, message_handlert &_message_handler)
Definition
havoc_assigns_clause_targets.h:54
havoc_assigns_clause_targetst::get_instructions
void get_instructions(goto_programt &dest)
Generates the assigns clause replacement instructions in dest.
Definition
havoc_assigns_clause_targets.cpp:22
havoc_assigns_clause_targetst::havoc_static_local
void havoc_static_local(car_exprt car, goto_programt &dest)
Havoc a static local expression.
Definition
havoc_assigns_clause_targets.cpp:125
havoc_assigns_clause_targetst::source_location
const source_locationt & source_location
Definition
havoc_assigns_clause_targets.h:121
instrument_spec_assignst::instrument_spec_assignst
instrument_spec_assignst(const irep_idt &_function_id, const goto_functionst &_functions, cfg_infot &_cfg_info, symbol_table_baset &_st, message_handlert &_message_handler)
Class constructor.
Definition
instrument_spec_assigns.h:196
message_handlert
Definition
message.h:27
source_locationt
Definition
source_location.h:20
symbol_table_baset
The symbol table base class interface.
Definition
symbol_table_base.h:23
instrument_spec_assigns.h
Specify write set in function contracts.
irep_idt
dstringt irep_idt
Definition
verification_result.h:16
goto-instrument
contracts
havoc_assigns_clause_targets.h
Generated by
1.17.0