ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
goto_inlinet Class Reference

#include <goto_inline.h>

Public Member Functions

 goto_inlinet (goto_functionst &_goto_functions, optionst &_options, const namespacet &_ns)
void goto_inline (goto_programt &dest)
void goto_inline_rec (goto_programt &dest, bool full)
bool inline_instruction (goto_programt &dest, bool full, goto_programt::targett &target)

Public Attributes

unsigned smallfunc_limit
std::set< std::string > inlined_funcs

Protected Types

typedef std::unordered_set< irep_idt, irep_id_hash > recursion_sett
typedef std::unordered_set< irep_idt, irep_id_hash > no_body_sett

Protected Member Functions

void expand_function_call (goto_programt &dest, goto_programt::targett &target, const expr2tc &lhs, const expr2tc &function, const std::vector< expr2tc > &arguments, bool recursive)
void replace_return (goto_programt &body, const expr2tc &lhs)
void parameter_assignments (const locationt &location, const code_type2t &code_type, const std::vector< expr2tc > &arguments, goto_programt &dest)

Protected Attributes

goto_functionst & goto_functions
optionst & options
const namespacet & ns
recursion_sett recursion_set
no_body_sett no_body_set

Member Typedef Documentation

◆ no_body_sett

typedef std::unordered_set<irep_idt, irep_id_hash> goto_inlinet::no_body_sett
protected

◆ recursion_sett

typedef std::unordered_set<irep_idt, irep_id_hash> goto_inlinet::recursion_sett
protected

Constructor & Destructor Documentation

◆ goto_inlinet()

goto_inlinet::goto_inlinet ( goto_functionst & _goto_functions,
optionst & _options,
const namespacet & _ns )
inline

Member Function Documentation

◆ expand_function_call()

void goto_inlinet::expand_function_call ( goto_programt & dest,
goto_programt::targett & target,
const expr2tc & lhs,
const expr2tc & function,
const std::vector< expr2tc > & arguments,
bool recursive )
protected

◆ goto_inline()

void goto_inlinet::goto_inline ( goto_programt & dest)

◆ goto_inline_rec()

void goto_inlinet::goto_inline_rec ( goto_programt & dest,
bool full )

◆ inline_instruction()

bool goto_inlinet::inline_instruction ( goto_programt & dest,
bool full,
goto_programt::targett & target )

◆ parameter_assignments()

void goto_inlinet::parameter_assignments ( const locationt & location,
const code_type2t & code_type,
const std::vector< expr2tc > & arguments,
goto_programt & dest )
protected

◆ replace_return()

void goto_inlinet::replace_return ( goto_programt & body,
const expr2tc & lhs )
protected

Member Data Documentation

◆ goto_functions

goto_functionst& goto_inlinet::goto_functions
protected

◆ inlined_funcs

std::set<std::string> goto_inlinet::inlined_funcs

◆ no_body_set

no_body_sett goto_inlinet::no_body_set
protected

◆ ns

const namespacet& goto_inlinet::ns
protected

◆ options

optionst& goto_inlinet::options
protected

◆ recursion_set

recursion_sett goto_inlinet::recursion_set
protected

◆ smallfunc_limit

unsigned goto_inlinet::smallfunc_limit

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