cprover
remove_instanceof.h File Reference

Remove Instance-of Operators. More...

Include dependency graph for remove_instanceof.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void remove_instanceof (goto_programt::targett target, goto_programt &goto_program, symbol_table_baset &symbol_table, message_handlert &)
 Replace an instanceof in the expression or guard of the passed instruction of the given function body with an explicit class-identifier test. More...
 
void remove_instanceof (goto_functionst::goto_functiont &function, symbol_table_baset &symbol_table, message_handlert &)
 Replace every instanceof in the passed function with an explicit class-identifier test. More...
 
void remove_instanceof (goto_functionst &goto_functions, symbol_table_baset &symbol_table, message_handlert &)
 Replace every instanceof in every function with an explicit class-identifier test. More...
 
void remove_instanceof (goto_modelt &model, message_handlert &)
 Replace every instanceof in every function with an explicit class-identifier test. More...
 

Detailed Description

Remove Instance-of Operators.

Definition in file remove_instanceof.h.

Function Documentation

◆ remove_instanceof() [1/4]

void remove_instanceof ( goto_programt::targett  target,
goto_programt goto_program,
symbol_table_baset symbol_table,
message_handlert message_handler 
)

Replace an instanceof in the expression or guard of the passed instruction of the given function body with an explicit class-identifier test.

Remarks
Extra auxiliary variables may be introduced into symbol_table.
Parameters
targetThe instruction to work on.
goto_programThe function body containing the instruction.
symbol_tableThe symbol table to add symbols to.
message_handlerlogging output

Definition at line 244 of file remove_instanceof.cpp.

References goto_program, remove_instanceoft::lower_instanceof(), and message_handler.

Referenced by remove_exceptionst::add_exception_dispatch_sequence(), jbmc_parse_optionst::process_goto_function(), jdiff_parse_optionst::process_goto_program(), janalyzer_parse_optionst::process_goto_program(), and remove_instanceof().

◆ remove_instanceof() [2/4]

void remove_instanceof ( goto_functionst::goto_functiont function,
symbol_table_baset symbol_table,
message_handlert message_handler 
)

Replace every instanceof in the passed function with an explicit class-identifier test.

Remarks
Extra auxiliary variables may be introduced into symbol_table.
Parameters
functionThe function to work on.
symbol_tableThe symbol table to add symbols to.
message_handlerlogging output

Definition at line 260 of file remove_instanceof.cpp.

References remove_instanceoft::lower_instanceof(), and message_handler.

◆ remove_instanceof() [3/4]

void remove_instanceof ( goto_functionst goto_functions,
symbol_table_baset symbol_table,
message_handlert message_handler 
)

Replace every instanceof in every function with an explicit class-identifier test.

Remarks
Extra auxiliary variables may be introduced into symbol_table.
Parameters
goto_functionsThe functions to work on.
symbol_tableThe symbol table to add symbols to.
message_handlerlogging output

Definition at line 275 of file remove_instanceof.cpp.

References goto_functionst::compute_location_numbers(), goto_functionst::function_map, remove_instanceoft::lower_instanceof(), and message_handler.

◆ remove_instanceof() [4/4]

void remove_instanceof ( goto_modelt goto_model,
message_handlert message_handler 
)

Replace every instanceof in every function with an explicit class-identifier test.

Remarks
Extra auxiliary variables may be introduced into symbol_table.
Parameters
goto_modelThe functions to work on and the symbol table to add
message_handlerlogging output symbols to.

Definition at line 294 of file remove_instanceof.cpp.

References goto_modelt::goto_functions, message_handler, remove_instanceof(), and goto_modelt::symbol_table.