cprover
goto_functionst Class Reference

#include <goto_functions.h>

Collaboration diagram for goto_functionst:
[legend]

Public Types

using goto_functiont = ::goto_functiont
 
typedef std::map< irep_idt, goto_functiontfunction_mapt
 

Public Member Functions

 goto_functionst ()
 
 goto_functionst (const goto_functionst &)=delete
 
goto_functionstoperator= (const goto_functionst &)=delete
 
 goto_functionst (goto_functionst &&other)
 
goto_functionstoperator= (goto_functionst &&other)
 
void unload (const irep_idt &name)
 
void clear ()
 
void output (const namespacet &ns, std::ostream &out) const
 
void compute_location_numbers ()
 
void compute_location_numbers (goto_programt &)
 
void compute_loop_numbers ()
 
void compute_target_numbers ()
 
void compute_incoming_edges ()
 
void update_instructions_function ()
 update the function member in each instruction by setting it to the goto function's identifier More...
 
void update ()
 
void swap (goto_functionst &other)
 
void copy_from (const goto_functionst &other)
 

Static Public Member Functions

static irep_idt entry_point ()
 

Public Attributes

function_mapt function_map
 

Private Attributes

unsigned unused_location_number
 A location number such that numbers in the interval [unused_location_number, MAX_UINT] are all unused. More...
 

Detailed Description

Definition at line 21 of file goto_functions.h.

Member Typedef Documentation

◆ function_mapt

Definition at line 25 of file goto_functions.h.

◆ goto_functiont

Definition at line 24 of file goto_functions.h.

Constructor & Destructor Documentation

◆ goto_functionst() [1/3]

goto_functionst::goto_functionst ( )
inline

Definition at line 37 of file goto_functions.h.

◆ goto_functionst() [2/3]

goto_functionst::goto_functionst ( const goto_functionst )
delete

◆ goto_functionst() [3/3]

goto_functionst::goto_functionst ( goto_functionst &&  other)
inline

Definition at line 53 of file goto_functions.h.

Member Function Documentation

◆ clear()

void goto_functionst::clear ( void  )
inline

Definition at line 68 of file goto_functions.h.

References function_map.

Referenced by goto_modelt::clear(), compilet::compile(), and compilet::doit().

◆ compute_incoming_edges()

void goto_functionst::compute_incoming_edges ( )

Definition at line 53 of file goto_functions.cpp.

References function_map.

Referenced by update().

◆ compute_location_numbers() [1/2]

◆ compute_location_numbers() [2/2]

void goto_functionst::compute_location_numbers ( goto_programt program)

◆ compute_loop_numbers()

◆ compute_target_numbers()

void goto_functionst::compute_target_numbers ( )

Definition at line 61 of file goto_functions.cpp.

References function_map.

Referenced by update().

◆ copy_from()

void goto_functionst::copy_from ( const goto_functionst other)
inline

Definition at line 113 of file goto_functions.h.

References function_map.

◆ entry_point()

static irep_idt goto_functionst::entry_point ( )
inlinestatic

Definition at line 102 of file goto_functions.h.

References CPROVER_PREFIX.

Referenced by shared_bufferst::add_initialization_code(), ansi_c_entry_point(), c_nondet_symbol_factory(), jbmc_parse_optionst::can_generate_function_body(), compute_called_functions(), symex_coveraget::compute_overall_coverage(), dump_ct::convert_function_declaration(), jbmc_parse_optionst::doit(), goto_instrument_parse_optionst::doit(), ai_baset::entry_state(), generate_ansi_c_start_function(), generate_java_start_function(), rebuild_goto_start_function_baset< maybe_lazy_goto_modelt >::get_entry_point_mode(), instrumentert::goto2graph_cfg(), goto_checkt::goto_check(), goto_inline(), goto_partial_inline(), lazy_goto_modelt::initialize(), interpretert::initialize(), initialize_goto_model(), property_checkert::initialize_property_map(), instrument_cover_goals(), interrupt(), instrumentert::is_cfg_spurious(), java_build_arguments(), java_entry_point(), jsil_entry_point(), compilet::link(), mmio(), model_argc_argv(), object_factory(), string_abstractiont::operator()(), taint_analysist::operator()(), rebuild_goto_start_function_baset< maybe_lazy_goto_modelt >::operator()(), dump_ct::operator()(), internal_functions_filtert::operator()(), print_path_lengths(), race_check(), rebuild_goto_start_function_baset< maybe_lazy_goto_modelt >::remove_existing_entry_point(), remove_unused_functions(), require_goto_statements::require_entry_point_argument_assignment(), require_goto_statements::require_entry_point_statements(), ai_baset::sequential_fixedpoint(), slice_global_inits(), stack_depth(), goto_symext::symex_from_entry_point_of(), symex_bmct::symex_step(), update_internal_field(), and weak_memory().

◆ operator=() [1/2]

goto_functionst& goto_functionst::operator= ( const goto_functionst )
delete

◆ operator=() [2/2]

goto_functionst& goto_functionst::operator= ( goto_functionst &&  other)
inline

Definition at line 59 of file goto_functions.h.

References function_map, and unused_location_number.

◆ output()

void goto_functionst::output ( const namespacet ns,
std::ostream &  out 
) const

◆ swap()

void goto_functionst::swap ( goto_functionst other)
inline

Definition at line 108 of file goto_functions.h.

References function_map.

Referenced by read_object_and_link().

◆ unload()

void goto_functionst::unload ( const irep_idt name)
inline

Definition at line 66 of file goto_functions.h.

References function_map.

Referenced by goto_modelt::unload().

◆ update()

◆ update_instructions_function()

void goto_functionst::update_instructions_function ( )
inline

update the function member in each instruction by setting it to the goto function's identifier

Definition at line 85 of file goto_functions.h.

References function_map.

Referenced by update().

Member Data Documentation

◆ function_map

function_mapt goto_functionst::function_map

Definition at line 26 of file goto_functions.h.

Referenced by code_contractst::add_contract_check(), full_slicert::add_function_calls(), shared_bufferst::add_initialization_code(), linker_script_merget::add_linker_script_definitions(), call_grapht::call_grapht(), goto_modelt::can_produce_function(), wrapper_goto_modelt::can_produce_function(), change_impactt::change_impact(), goto_inlinet::check_inline_map(), replace_callst::check_replacement_map(), clear(), compute_called_functions(), cfg_baset< cfg_nodet >::compute_edges_function_call(), compute_incoming_edges(), compute_location_numbers(), compute_loop_numbers(), rw_set_functiont::compute_rec(), compute_target_numbers(), show_goto_functions_jsont::convert(), show_goto_functions_xmlt::convert(), convert(), dump_ct::convert_function_declaration(), goto_difft::convert_function_json(), convert_nondet(), compilet::convert_symbols(), copy_from(), goto_program_dereferencet::dereference_program(), flow_insensitive_analysis_baset::do_function_call_rec(), static_analysis_baset::do_function_call_rec(), ai_baset::do_function_call_rec(), goto_instrument_parse_optionst::doit(), ai_baset::entry_state(), interpretert::execute_function_call(), goto_inlinet::expand_function_call(), find_property(), find_used_functions(), compilet::function_body_count(), remove_asmt::gcc_asm_function_call(), generate_function_bodies(), aggressive_slicert::get_all_functions_containing_properties(), unified_difft::get_diff(), get_function_from_goto_functions(), goto_modelt::get_goto_function(), wrapper_goto_modelt::get_goto_function(), function_modifiest::get_modifies_function(), get_preconditions(), instrumentert::goto2graph_cfg(), goto_convert(), goto_convert_functionst::goto_convert(), goto_function_inline(), goto_function_inline_and_log(), goto_inline(), goto_partial_inline(), goto_rw(), interpretert::initialize(), taint_analysist::instrument(), instrument_cover_goals(), instrument_preconditions(), instrumentert::is_cfg_spurious(), remove_calls_no_bodyt::is_opaque_function_call(), label_properties(), compilet::link(), link_functions(), link_to_library(), make_assertions_false(), mm_io(), model_argc_argv(), remove_asmt::msc_asm_function_call(), nondet_static(), replace_callst::operator()(), java_syntactic_difft::operator()(), syntactic_difft::operator()(), remove_virtual_functionst::operator()(), remove_returnst::operator()(), string_abstractiont::operator()(), remove_asmt::operator()(), taint_analysist::operator()(), code_contractst::operator()(), remove_function_pointerst::operator()(), dump_ct::operator()(), string_instrumentationt::operator()(), check_call_sequencet::operator()(), local_may_alias_factoryt::operator()(), operator=(), unified_difft::output(), output(), change_impactt::output_change_impact(), goto_difft::output_function(), goto_inlinet::output_inline_map(), linker_script_merget::pointerize_linker_defined_symbols(), print_global_state_size(), print_path_lengths(), race_check(), read_bin_goto_object_v3(), remove_function(), remove_instanceof(), remove_java_new(), remove_preconditions(), remove_unused_functions(), replace_java_nondet(), ai_baset::sequential_fixedpoint(), show_goto_functions(), show_locations(), show_properties(), show_properties_json(), slice_global_inits(), splice_call(), stack_depth(), swap(), thread_exit_instrumentation(), undefined_function_abort_path(), unload(), update_instructions_function(), ai_baset::visit(), shared_bufferst::cfg_visitort::weak_memory(), compilet::write_bin_object_file(), and write_goto_binary_v3().

◆ unused_location_number

unsigned goto_functionst::unused_location_number
private

A location number such that numbers in the interval [unused_location_number, MAX_UINT] are all unused.

There might still be unused numbers below this. If numbering a new function or renumbering a function, starting from this number is safe.

Definition at line 34 of file goto_functions.h.

Referenced by compute_location_numbers(), and operator=().


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