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 >:
[legend]
Collaboration diagram for rebuild_goto_start_function_baset< maybe_lazy_goto_modelt >:
[legend]

Public Member Functions

 rebuild_goto_start_function_baset (const cmdlinet &cmdline, 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 mstream using output_generator if the configured verbosity is at least as high as that of mstream. 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 cmdlinetcmdline
 
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 mstreamteom (mstreamt &m)
 
static mstreamtendl (mstreamt &m)
 
- 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 cmdlinet cmdline,
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
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 29 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 ( ) const
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 77 of file rebuild_goto_start_function.cpp.

References goto_functionst::entry_point(), and symbolt::mode.

◆ operator()()

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

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.

Parameters
entry_functionThe name of the entry function that should be called from _start
Returns
Returns true if either the symbol is not found, or something went wrong with generating the start_function. False otherwise.

Definition at line 48 of file rebuild_goto_start_function.cpp.

References goto_functionst::entry_point(), languaget::generate_support_functions(), get_language_from_mode(), languaget::get_language_options(), id2string(), INVARIANT, and messaget::set_message_handler().

◆ 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 88 of file rebuild_goto_start_function.cpp.

References goto_functionst::entry_point(), has_prefix(), and id2string().

Member Data Documentation

◆ cmdline

template<typename maybe_lazy_goto_modelt >
const cmdlinet& rebuild_goto_start_function_baset< maybe_lazy_goto_modelt >::cmdline
private

Definition at line 43 of file rebuild_goto_start_function.h.

◆ 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.


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