cprover
remove_function_pointerst Class Reference
Inheritance diagram for remove_function_pointerst:
[legend]
Collaboration diagram for remove_function_pointerst:
[legend]

Public Member Functions

 remove_function_pointerst (message_handlert &_message_handler, symbol_tablet &_symbol_table, bool _add_safety_assertion, bool only_resolve_const_fps, const goto_functionst &goto_functions)
 
void operator() (goto_functionst &goto_functions)
 
bool remove_function_pointers (goto_programt &goto_program)
 
- Public Member Functions inherited from messaget
virtual void set_message_handler (message_handlert &_message_handler)
 
message_handlertget_message_handler ()
 
 messaget ()
 
 messaget (const messaget &other)
 
messagetoperator= (const messaget &other)
 
 messaget (message_handlert &_message_handler)
 
virtual ~messaget ()
 
mstreamtget_mstream (unsigned message_level) const
 
mstreamterror () const
 
mstreamtwarning () const
 
mstreamtresult () const
 
mstreamtstatus () const
 
mstreamtstatistics () const
 
mstreamtprogress () const
 
mstreamtdebug () const
 
void conditional_output (mstreamt &mstream, const std::function< void(mstreamt &)> &output_generator) const
 Generate output to mstream using output_generator if the configured verbosity is at least as high as that of mstream. More...
 

Protected Types

typedef std::map< irep_idt, code_typettype_mapt
 

Protected Member Functions

void remove_function_pointer (goto_programt &goto_program, goto_programt::targett target)
 
bool is_type_compatible (bool return_value_used, const code_typet &call_type, const code_typet &function_type)
 
bool arg_is_type_compatible (const typet &call_type, const typet &function_type)
 
void fix_argument_types (code_function_callt &function_call)
 
void fix_return_type (code_function_callt &function_call, goto_programt &dest)
 
void compute_address_taken_in_symbols (std::unordered_set< irep_idt > &address_taken)
 

Protected Attributes

const namespacet ns
 
symbol_tabletsymbol_table
 
bool add_safety_assertion
 
bool only_resolve_const_fps
 
std::unordered_set< irep_idtaddress_taken
 
type_mapt type_map
 
- Protected Attributes inherited from messaget
message_handlertmessage_handler
 
mstreamt mstream
 

Additional Inherited Members

- Public Types inherited from messaget
enum  message_levelt {
  M_ERROR =1, M_WARNING =2, M_RESULT =4, M_STATUS =6,
  M_STATISTICS =8, M_PROGRESS =9, M_DEBUG =10
}
 
- Static Public Member Functions inherited from messaget
static unsigned eval_verbosity (const std::string &user_input, const message_levelt default_verbosity, message_handlert &dest)
 Parse a (user-)provided string as a verbosity level and set it as the verbosity of dest. More...
 
static mstreamteom (mstreamt &m)
 
static mstreamtendl (mstreamt &m)
 

Detailed Description

Definition at line 33 of file remove_function_pointers.cpp.

Member Typedef Documentation

◆ type_mapt

Definition at line 66 of file remove_function_pointers.cpp.

Constructor & Destructor Documentation

◆ remove_function_pointerst()

remove_function_pointerst::remove_function_pointerst ( message_handlert _message_handler,
symbol_tablet _symbol_table,
bool  _add_safety_assertion,
bool  only_resolve_const_fps,
const goto_functionst goto_functions 
)

Member Function Documentation

◆ arg_is_type_compatible()

bool remove_function_pointerst::arg_is_type_compatible ( const typet call_type,
const typet function_type 
)
protected

Definition at line 112 of file remove_function_pointers.cpp.

References irept::id(), ns, pointer_offset_bits(), and type_eq().

Referenced by is_type_compatible().

◆ compute_address_taken_in_symbols()

void remove_function_pointerst::compute_address_taken_in_symbols ( std::unordered_set< irep_idt > &  address_taken)
inlineprotected

◆ fix_argument_types()

void remove_function_pointerst::fix_argument_types ( code_function_callt function_call)
protected

◆ fix_return_type()

◆ is_type_compatible()

bool remove_function_pointerst::is_type_compatible ( bool  return_value_used,
const code_typet call_type,
const code_typet function_type 
)
protected

◆ operator()()

void remove_function_pointerst::operator() ( goto_functionst goto_functions)

◆ remove_function_pointer()

◆ remove_function_pointers()

bool remove_function_pointerst::remove_function_pointers ( goto_programt goto_program)

Member Data Documentation

◆ add_safety_assertion

bool remove_function_pointerst::add_safety_assertion
protected

Definition at line 50 of file remove_function_pointers.cpp.

Referenced by remove_function_pointer().

◆ address_taken

std::unordered_set<irep_idt> remove_function_pointerst::address_taken
protected

◆ ns

◆ only_resolve_const_fps

bool remove_function_pointerst::only_resolve_const_fps
protected

Definition at line 58 of file remove_function_pointers.cpp.

Referenced by remove_function_pointer().

◆ symbol_table

symbol_tablet& remove_function_pointerst::symbol_table
protected

◆ type_map

type_mapt remove_function_pointerst::type_map
protected

The documentation for this class was generated from the following file: