cprover
rebuild_goto_start_function_baset< maybe_lazy_goto_modelt > Class Template Reference

#include <rebuild_goto_start_function.h>

+ Inheritance diagram for rebuild_goto_start_function_baset< maybe_lazy_goto_modelt >:
+ Collaboration diagram for rebuild_goto_start_function_baset< maybe_lazy_goto_modelt >:

Public Member Functions

 rebuild_goto_start_function_baset (const optionst &options, maybe_lazy_goto_modelt &goto_model, message_handlert &message_handler)
 To rebuild the _start function in the event the program was compiled into GOTO with a different entry function selected. More...
 
bool operator() ()
 To rebuild the _start function in the event the program was compiled into GOTO with a different entry function selected. 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...
 

Private Member Functions

irep_idt get_entry_point_mode () const
 Find out the mode of the current entry point to determine the mode of the replacement entry point. More...
 
void remove_existing_entry_point ()
 Eliminate the existing entry point function symbol and any symbols created in that scope from the symbol table. More...
 

Private Attributes

const optionstoptions
 
maybe_lazy_goto_modelt & goto_model
 

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...
 
- Protected Attributes inherited from messaget
message_handlertmessage_handler
 
mstreamt mstream
 

Detailed Description

template<typename maybe_lazy_goto_modelt>
class rebuild_goto_start_function_baset< maybe_lazy_goto_modelt >

Definition at line 28 of file rebuild_goto_start_function.h.

Constructor & Destructor Documentation

◆ rebuild_goto_start_function_baset()

template<typename maybe_lazy_goto_modelt >
rebuild_goto_start_function_baset< maybe_lazy_goto_modelt >::rebuild_goto_start_function_baset ( const optionst options,
maybe_lazy_goto_modelt &  goto_model,
message_handlert message_handler 
)

To rebuild the _start function in the event the program was compiled into GOTO with a different entry function selected.

Parameters
optionsCommand-line options
goto_modelThe goto functions (to replace the body of the _start function) and symbol table (to replace the _start function symbol) of the program.
message_handlerThe message handler to report any messages with

Definition at line 30 of file rebuild_goto_start_function.cpp.

Member Function Documentation

◆ get_entry_point_mode()

template<typename maybe_lazy_goto_modelt >
irep_idt rebuild_goto_start_function_baset< maybe_lazy_goto_modelt >::get_entry_point_mode
private

Find out the mode of the current entry point to determine the mode of the replacement entry point.

Returns
A mode string saying which language to use

Definition at line 74 of file rebuild_goto_start_function.cpp.

◆ operator()()

template<typename maybe_lazy_goto_modelt >
bool rebuild_goto_start_function_baset< maybe_lazy_goto_modelt >::operator()

To rebuild the _start function in the event the program was compiled into GOTO with a different entry function selected.

It works by discarding the _start symbol and GOTO function and calling on the relevant languaget to generate the _start function again.

Returns
Returns true if either the symbol is not found, or something went wrong with generating the start_function. False otherwise.

Definition at line 45 of file rebuild_goto_start_function.cpp.

◆ remove_existing_entry_point()

template<typename maybe_lazy_goto_modelt >
void rebuild_goto_start_function_baset< maybe_lazy_goto_modelt >::remove_existing_entry_point
private

Eliminate the existing entry point function symbol and any symbols created in that scope from the symbol table.

Definition at line 85 of file rebuild_goto_start_function.cpp.

Member Data Documentation

◆ goto_model

template<typename maybe_lazy_goto_modelt >
maybe_lazy_goto_modelt& rebuild_goto_start_function_baset< maybe_lazy_goto_modelt >::goto_model
private

Definition at line 44 of file rebuild_goto_start_function.h.

◆ options

template<typename maybe_lazy_goto_modelt >
const optionst& rebuild_goto_start_function_baset< maybe_lazy_goto_modelt >::options
private

Definition at line 43 of file rebuild_goto_start_function.h.


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