cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
remove_returns.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: Remove function returns
4
5
Author: Daniel Kroening
6
7
Date: September 2009
8
9
\*******************************************************************/
10
13
70
71
#ifndef CPROVER_GOTO_PROGRAMS_REMOVE_RETURNS_H
72
#define CPROVER_GOTO_PROGRAMS_REMOVE_RETURNS_H
73
74
#include <
util/irep.h
>
75
76
#include "
goto_program.h
"
77
78
#include <functional>
79
80
class
goto_functionst
;
81
class
goto_model_functiont
;
82
class
goto_modelt
;
83
class
symbol_table_baset
;
84
class
symbol_exprt
;
85
86
void
remove_returns
(
symbol_table_baset
&,
goto_functionst
&);
87
88
typedef
std::function<bool(
const
irep_idt
&)>
function_is_stubt
;
89
90
void
remove_returns
(
goto_model_functiont
&,
function_is_stubt
);
91
92
void
remove_returns
(
goto_modelt
&);
93
94
// reverse the above operations
95
void
restore_returns
(
symbol_table_baset
&,
goto_functionst
&);
96
97
void
restore_returns
(
goto_modelt
&);
98
101
irep_idt
return_value_identifier
(
const
irep_idt
&);
102
105
symbol_exprt
return_value_symbol
(
const
irep_idt
&,
const
namespacet
&);
106
109
bool
is_return_value_identifier
(
const
irep_idt
&
id
);
110
113
bool
is_return_value_symbol
(
const
symbol_exprt
&symbol_expr);
114
118
bool
does_function_call_return
(
119
const
goto_programt::instructiont
&function_call);
120
121
#endif
// CPROVER_GOTO_PROGRAMS_REMOVE_RETURNS_H
goto_functionst
A collection of goto functions.
Definition
goto_functions.h:25
goto_model_functiont
Interface providing access to a single function in a GOTO model, plus its associated symbol table.
Definition
goto_model.h:190
goto_modelt
Definition
goto_model.h:27
goto_programt::instructiont
This class represents an instruction in the GOTO intermediate representation.
Definition
goto_program.h:180
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition
namespace.h:91
symbol_exprt
Expression to hold a symbol (variable).
Definition
std_expr.h:132
symbol_table_baset
The symbol table base class interface.
Definition
symbol_table_base.h:23
goto_program.h
Concrete Goto Program.
irep.h
is_return_value_identifier
bool is_return_value_identifier(const irep_idt &id)
Returns true if id is a special return-value symbol produced by return_value_identifier.
Definition
remove_returns.cpp:420
does_function_call_return
bool does_function_call_return(const goto_programt::instructiont &function_call)
Check if the function_call returns anything.
Definition
remove_returns.cpp:430
restore_returns
void restore_returns(symbol_table_baset &, goto_functionst &)
function_is_stubt
std::function< bool(const irep_idt &)> function_is_stubt
Definition
remove_returns.h:88
is_return_value_symbol
bool is_return_value_symbol(const symbol_exprt &symbol_expr)
Returns true if symbol_expr is a special return-value symbol produced by return_value_symbol.
Definition
remove_returns.cpp:425
return_value_symbol
symbol_exprt return_value_symbol(const irep_idt &, const namespacet &)
produces the symbol that is used to store the return value of the function with the given identifier
Definition
remove_returns.cpp:413
return_value_identifier
irep_idt return_value_identifier(const irep_idt &)
produces the identifier that is used to store the return value of the function with the given identif...
Definition
remove_returns.cpp:407
remove_returns
void remove_returns(symbol_table_baset &, goto_functionst &)
removes returns
Definition
remove_returns.cpp:259
irep_idt
dstringt irep_idt
Definition
verification_result.h:16
goto-programs
remove_returns.h
Generated by
1.17.0