cprover
remove_java_newt Class Reference
+ Inheritance diagram for remove_java_newt:
+ Collaboration diagram for remove_java_newt:

Public Member Functions

 remove_java_newt (symbol_table_baset &symbol_table, message_handlert &_message_handler)
 
bool lower_java_new (goto_programt &)
 Replace every java_new or java_new_array by a malloc side-effect and zero initialization. More...
 
goto_programt::targett lower_java_new (goto_programt &, goto_programt::targett)
 Replace every java_new or java_new_array by a malloc side-effect and zero initialization. More...
 
- 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 message_stream using output_generator if the configured verbosity is at least as high as that of message_stream. More...
 

Protected Member Functions

goto_programt::targett lower_java_new (exprt lhs, side_effect_exprt rhs, goto_programt &, goto_programt::targett)
 Replaces the instruction lhs = new java_type by two instructions: lhs = ALLOCATE(java_type) *lhs = { zero-initialized java_type }. More...
 
goto_programt::targett lower_java_new_array (exprt lhs, side_effect_exprt rhs, goto_programt &, goto_programt::targett)
 Replaces the instruction lhs = new java_array_type by the following code: lhs = ALLOCATE(java_type) loops to initialize the elements (including multi-dimensional arrays) More...
 

Protected Attributes

symbol_table_basetsymbol_table
 
namespacet ns
 
- 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 commandt command (unsigned c)
 Create an ECMA-48 SGR (Select Graphic Rendition) command. More...
 
- Static Public Attributes inherited from messaget
static eomt eom
 
static const commandt reset
 return to default formatting, as defined by the terminal More...
 
static const commandt red
 render text with red foreground color More...
 
static const commandt green
 render text with green foreground color More...
 
static const commandt yellow
 render text with yellow foreground color More...
 
static const commandt blue
 render text with blue foreground color More...
 
static const commandt magenta
 render text with magenta foreground color More...
 
static const commandt cyan
 render text with cyan foreground color More...
 
static const commandt bright_red
 render text with bright red foreground color More...
 
static const commandt bright_green
 render text with bright green foreground color More...
 
static const commandt bright_yellow
 render text with bright yellow foreground color More...
 
static const commandt bright_blue
 render text with bright blue foreground color More...
 
static const commandt bright_magenta
 render text with bright magenta foreground color More...
 
static const commandt bright_cyan
 render text with bright cyan foreground color More...
 
static const commandt bold
 render text with bold font More...
 
static const commandt faint
 render text with faint font More...
 
static const commandt italic
 render italic text More...
 
static const commandt underline
 render underlined text More...
 

Detailed Description

Definition at line 25 of file remove_java_new.cpp.

Constructor & Destructor Documentation

◆ remove_java_newt()

remove_java_newt::remove_java_newt ( symbol_table_baset symbol_table,
message_handlert _message_handler 
)
inline

Definition at line 28 of file remove_java_new.cpp.

Member Function Documentation

◆ lower_java_new() [1/3]

bool remove_java_newt::lower_java_new ( goto_programt goto_program)

Replace every java_new or java_new_array by a malloc side-effect and zero initialization.

Extra auxiliary variables may be introduced into symbol_table.

Parameters
goto_programThe function body to work on.
Returns
true if one or more java_new expressions have been replaced

Definition at line 359 of file remove_java_new.cpp.

◆ lower_java_new() [2/3]

goto_programt::targett remove_java_newt::lower_java_new ( goto_programt goto_program,
goto_programt::targett  target 
)

Replace every java_new or java_new_array by a malloc side-effect and zero initialization.

Parameters
goto_programprogram to process
targetinstruction to check for java_new expressions
Returns
true if a replacement has been made

Definition at line 328 of file remove_java_new.cpp.

◆ lower_java_new() [3/3]

goto_programt::targett remove_java_newt::lower_java_new ( exprt  lhs,
side_effect_exprt  rhs,
goto_programt dest,
goto_programt::targett  target 
)
protected

Replaces the instruction lhs = new java_type by two instructions: lhs = ALLOCATE(java_type) *lhs = { zero-initialized java_type }.

Parameters
lhsthe lhs
rhsthe rhs
destthe goto program to modify
targetthe goto instruction to replace
Returns
the iterator advanced to the last of the inserted instructions Note: we have to take a copy of lhs and rhs since they would suffer destruction when replacing the instruction.

Definition at line 70 of file remove_java_new.cpp.

◆ lower_java_new_array()

goto_programt::targett remove_java_newt::lower_java_new_array ( exprt  lhs,
side_effect_exprt  rhs,
goto_programt dest,
goto_programt::targett  target 
)
protected

Replaces the instruction lhs = new java_array_type by the following code: lhs = ALLOCATE(java_type) loops to initialize the elements (including multi-dimensional arrays)

Parameters
lhsthe lhs
rhsthe rhs
destthe goto program to modify
targetthe goto instruction to replace
Returns
the iterator advanced to the last of the inserted instructions Note: we have to take a copy of lhs and rhs since they would suffer destruction when replacing the instruction.

Definition at line 118 of file remove_java_new.cpp.

Member Data Documentation

◆ ns

namespacet remove_java_newt::ns
protected

Definition at line 44 of file remove_java_new.cpp.

◆ symbol_table

symbol_table_baset& remove_java_newt::symbol_table
protected

Definition at line 43 of file remove_java_new.cpp.


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