cprover
|
Remove Virtual Function (Method) Calls. More...
Go to the source code of this file.
Classes | |
class | dispatch_table_entryt |
Typedefs | |
typedef std::vector< dispatch_table_entryt > | dispatch_table_entriest |
typedef std::map< irep_idt, dispatch_table_entryt > | dispatch_table_entries_mapt |
Enumerations | |
enum | virtual_dispatch_fallback_actiont { virtual_dispatch_fallback_actiont::CALL_LAST_FUNCTION, virtual_dispatch_fallback_actiont::ASSUME_FALSE } |
Specifies remove_virtual_function's behaviour when the actual supplied parameter does not match any of the possible callee types. More... | |
Remove Virtual Function (Method) Calls.
Definition in file remove_virtual_functions.h.
typedef std::map<irep_idt, dispatch_table_entryt> dispatch_table_entries_mapt |
Definition at line 67 of file remove_virtual_functions.h.
typedef std::vector<dispatch_table_entryt> dispatch_table_entriest |
Definition at line 66 of file remove_virtual_functions.h.
|
strong |
Specifies remove_virtual_function's behaviour when the actual supplied parameter does not match any of the possible callee types.
Definition at line 44 of file remove_virtual_functions.h.
void collect_virtual_function_callees | ( | const exprt & | function, |
const symbol_tablet & | symbol_table, | ||
const class_hierarchyt & | class_hierarchy, | ||
dispatch_table_entriest & | overridden_functions | ||
) |
Given a function expression representing a virtual method of a class, the function computes all overridden methods of that virtual method.
function | The virtual function expression for which the overridden methods will be searched for. | |
symbol_table | A symbol table. | |
class_hierarchy | A class hierarchy. | |
[out] | overridden_functions | Output collection into which all overridden functions will be stored. |
goto_programt::targett remove_virtual_function | ( | goto_modelt & | goto_model, |
goto_programt & | goto_program, | ||
goto_programt::targett | instruction, | ||
const dispatch_table_entriest & | dispatch_table, | ||
virtual_dispatch_fallback_actiont | fallback_action | ||
) |
Definition at line 576 of file remove_virtual_functions.cpp.
References goto_program, remove_virtual_function(), and goto_modelt::symbol_table.
goto_programt::targett remove_virtual_function | ( | symbol_tablet & | symbol_table, |
goto_programt & | goto_program, | ||
goto_programt::targett | instruction, | ||
const dispatch_table_entriest & | dispatch_table, | ||
virtual_dispatch_fallback_actiont | fallback_action | ||
) |
Definition at line 557 of file remove_virtual_functions.cpp.
References goto_program, remove_virtual_functionst::remove_virtual_function(), and goto_programt::update().
Referenced by remove_virtual_function().
void remove_virtual_functions | ( | goto_modelt & | goto_model | ) |
Definition at line 543 of file remove_virtual_functions.cpp.
References goto_modelt::goto_functions, remove_virtual_functions(), and goto_modelt::symbol_table.
void remove_virtual_functions | ( | const symbol_table_baset & | symbol_table, |
goto_functionst & | goto_functions | ||
) |
Definition at line 533 of file remove_virtual_functions.cpp.
Referenced by goto_instrument_parse_optionst::do_indirect_call_and_rtti_removal(), jbmc_parse_optionst::process_goto_function(), jdiff_parse_optionst::process_goto_program(), janalyzer_parse_optionst::process_goto_program(), and remove_virtual_functions().
void remove_virtual_functions | ( | goto_model_functiont & | function | ) |
Remove virtual functions from one function.
May change the location numbers in function
.
function | function from which virtual functions should be converted to explicit dispatch tables. |
Definition at line 549 of file remove_virtual_functions.cpp.
References remove_virtual_functionst::remove_virtual_functions().