cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
dfcc_pointer_equals.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: Dynamic frame condition checking for function contracts
4
5
Author: Remi Delmas, delmasrd@amazon.com
6
Date: Jan 2025
7
8
\*******************************************************************/
9
13
14
#ifndef CPROVER_GOTO_INSTRUMENT_CONTRACTS_DYNAMIC_FRAMES_DFCC_POINTER_EQUALS_H
15
#define CPROVER_GOTO_INSTRUMENT_CONTRACTS_DYNAMIC_FRAMES_DFCC_POINTER_EQUALS_H
16
17
#include <
util/message.h
>
18
19
#include <
goto-programs/goto_program.h
>
20
21
class
goto_modelt
;
22
class
message_handlert
;
23
class
dfcc_libraryt
;
24
class
dfcc_cfg_infot
;
25
class
exprt
;
26
31
void
rewrite_equal_exprt_to_pointer_equals
(
exprt
&expr);
32
35
class
dfcc_pointer_equalst
36
{
37
public
:
40
dfcc_pointer_equalst
(
41
dfcc_libraryt
&
library
,
42
message_handlert
&
message_handler
);
43
47
void
rewrite_calls
(
goto_programt
&program,
dfcc_cfg_infot
cfg_info);
48
53
void
rewrite_calls
(
54
goto_programt
&program,
55
goto_programt::targett
first_instruction,
56
const
goto_programt::targett
&last_instruction,
57
dfcc_cfg_infot
cfg_info);
58
59
protected
:
60
dfcc_libraryt
&
library
;
61
message_handlert
&
message_handler
;
62
messaget
log
;
63
};
64
65
#endif
dfcc_cfg_infot
Computes natural loops, enforces normal form conditions, computes the nesting graph,...
Definition
dfcc_cfg_info.h:243
dfcc_libraryt
Class interface to library types and functions defined in cprover_contracts.c.
Definition
dfcc_library.h:163
dfcc_pointer_equalst::log
messaget log
Definition
dfcc_pointer_equals.h:62
dfcc_pointer_equalst::dfcc_pointer_equalst
dfcc_pointer_equalst(dfcc_libraryt &library, message_handlert &message_handler)
Definition
dfcc_pointer_equals.cpp:26
dfcc_pointer_equalst::rewrite_calls
void rewrite_calls(goto_programt &program, dfcc_cfg_infot cfg_info)
Rewrites calls to pointer_equals predicates into calls to the library implementation in the given pro...
Definition
dfcc_pointer_equals.cpp:33
dfcc_pointer_equalst::library
dfcc_libraryt & library
Definition
dfcc_pointer_equals.h:60
dfcc_pointer_equalst::message_handler
message_handlert & message_handler
Definition
dfcc_pointer_equals.h:61
exprt
Base class for all expressions.
Definition
expr.h:57
goto_modelt
Definition
goto_model.h:27
goto_programt
A generic container class for the GOTO intermediate representation of one function.
Definition
goto_program.h:72
goto_programt::targett
instructionst::iterator targett
Definition
goto_program.h:613
message_handlert
Definition
message.h:27
messaget
Class that provides messages with a built-in verbosity 'level'.
Definition
message.h:154
rewrite_equal_exprt_to_pointer_equals
void rewrite_equal_exprt_to_pointer_equals(exprt &expr)
Rewrites equal_exprt over pointers into calls to the front-end function __CPROVER_pointer_equals,...
Definition
dfcc_pointer_equals.cpp:145
goto_program.h
Concrete Goto Program.
message.h
goto-instrument
contracts
dynamic-frames
dfcc_pointer_equals.h
Generated by
1.17.0