ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
irep2_dispatch.h File Reference
#include <cassert>
#include <tuple>
#include <type_traits>
#include <util/arith/fixedbv.h>
#include <util/base/i2string.h>
#include <util/arith/ieee_float.h>
#include <util/irep/migrate.h>
#include <irep2/irep2_type.h>
#include <irep2/irep2_expr.h>
#include <irep2/irep2_utils.h>
Include dependency graph for irep2_dispatch.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  esbmct
 Containers and field-walking infrastructure for irep2 nodes.

Functions

std::string type_to_string (const bool &thebool, int)
std::string type_to_string (const sideeffect_allockind &data, int)
std::string type_to_string (const unsigned int &theval, int)
std::string type_to_string (const constant_string_kindt &theval, int)
std::string type_to_string (const pointer_ref_kindt &theval, int)
std::string type_to_string (const printf_kindt &theval, int)
std::string type_to_string (const symbol_renaming_level &theval, int)
std::string type_to_string (const BigInt &theint, int)
std::string type_to_string (const fixedbvt &theval, int)
std::string type_to_string (const ieee_floatt &theval, int)
std::string type_to_string (const std::vector< expr2tc > &theval, int indent)
std::string type_to_string (const std::vector< type2tc > &theval, int indent)
std::string type_to_string (const std::vector< irep_idt > &theval, int indent)
std::string type_to_string (const expr2tc &theval, int indent)
std::string type_to_string (const type2tc &theval, int indent)
std::string type_to_string (const irep_idt &theval, int)
template<class T>
bool do_type_cmp (const T &side1, const T &side2)
template<class T>
int do_type_lt (const T &side1, const T &side2)
bool do_type_cmp (const ieee_floatt &side1, const ieee_floatt &side2)
int do_type_lt (const ieee_floatt &side1, const ieee_floatt &side2)
int do_type_lt (const BigInt &side1, const BigInt &side2)
int do_type_lt (const std::vector< expr2tc > &side1, const std::vector< expr2tc > &side2)
int do_type_lt (const std::vector< type2tc > &side1, const std::vector< type2tc > &side2)
int do_type_lt (const expr2tc &side1, const expr2tc &side2)
int do_type_lt (const type2tc &side1, const type2tc &side2)
template<typename T>
void do_type2string (const T &thething, unsigned int idx, std::string(&names)[esbmct::num_type_fields], list_of_memberst &vec, unsigned int indent)
template<class T>
bool do_get_sub_expr (const T &, size_t, size_t &, const expr2tc *&)
template<>
bool do_get_sub_expr< expr2tc > (const expr2tc &item, size_t idx, size_t &it, const expr2tc *&ptr)
template<>
bool do_get_sub_expr< std::vector< expr2tc > > (const std::vector< expr2tc > &item, size_t idx, size_t &it, const expr2tc *&ptr)
template<class T>
size_t do_count_sub_exprs (T &)
template<>
size_t do_count_sub_exprs< const expr2tc > (const expr2tc &)
template<>
size_t do_count_sub_exprs< const std::vector< expr2tc > > (const std::vector< expr2tc > &item)
template<typename T, typename U>
void call_expr_delegate (T &, U &)
template<>
void call_expr_delegate< const expr2tc, expr2t::const_op_delegate > (const expr2tc &ref, expr2t::const_op_delegate &f)
template<>
void call_expr_delegate< expr2tc, expr2t::op_delegate > (expr2tc &ref, expr2t::op_delegate &f)
template<typename T, typename U>
void call_type_delegate (T &, U &)
template<>
void call_type_delegate< const type2tc, type2t::const_subtype_delegate > (const type2tc &ref, type2t::const_subtype_delegate &f)
template<>
void call_type_delegate< type2tc, type2t::subtype_delegate > (type2tc &ref, type2t::subtype_delegate &f)
template<class K>
bool esbmct::generic_cmp (const K &a, const expr2t &o)
template<class K>
int esbmct::generic_lt (const K &a, const expr2t &o)
template<class K>
list_of_memberst esbmct::generic_tostring (const K &a, unsigned int indent)
template<class K>
const expr2tc * esbmct::generic_get_sub_expr (const K &a, size_t idx)
template<class K>
size_t esbmct::generic_get_num_sub_exprs (const K &a)
template<class K>
void esbmct::generic_foreach_operand_impl_const (const K &a, expr2t::const_op_delegate &f)
template<class K>
void esbmct::generic_foreach_operand_impl (K &a, expr2t::op_delegate &f)
template<class K>
bool esbmct::generic_cmp_type (const K &a, const type2t &o)
template<class K>
int esbmct::generic_lt_type (const K &a, const type2t &o)
template<class K>
list_of_memberst esbmct::generic_tostring_type (const K &a, unsigned int indent)
template<class K>
void esbmct::generic_foreach_subtype_const (const K &a, type2t::const_subtype_delegate &f)
template<class K>
void esbmct::generic_foreach_subtype (K &a, type2t::subtype_delegate &f)

Function Documentation

◆ call_expr_delegate()

template<typename T, typename U>
void call_expr_delegate ( T & ,
U &  )

◆ call_expr_delegate< const expr2tc, expr2t::const_op_delegate >()

◆ call_expr_delegate< expr2tc, expr2t::op_delegate >()

◆ call_type_delegate()

template<typename T, typename U>
void call_type_delegate ( T & ,
U &  )

◆ call_type_delegate< const type2tc, type2t::const_subtype_delegate >()

◆ call_type_delegate< type2tc, type2t::subtype_delegate >()

◆ do_count_sub_exprs()

template<class T>
size_t do_count_sub_exprs ( T & )

◆ do_count_sub_exprs< const expr2tc >()

template<>
size_t do_count_sub_exprs< const expr2tc > ( const expr2tc & )

◆ do_count_sub_exprs< const std::vector< expr2tc > >()

template<>
size_t do_count_sub_exprs< const std::vector< expr2tc > > ( const std::vector< expr2tc > & item)

◆ do_get_sub_expr()

template<class T>
bool do_get_sub_expr ( const T & ,
size_t ,
size_t & ,
const expr2tc *&  )

◆ do_get_sub_expr< expr2tc >()

template<>
bool do_get_sub_expr< expr2tc > ( const expr2tc & item,
size_t idx,
size_t & it,
const expr2tc *& ptr )

◆ do_get_sub_expr< std::vector< expr2tc > >()

template<>
bool do_get_sub_expr< std::vector< expr2tc > > ( const std::vector< expr2tc > & item,
size_t idx,
size_t & it,
const expr2tc *& ptr )

◆ do_type2string()

template<typename T>
void do_type2string ( const T & thething,
unsigned int idx,
std::string(&) names[esbmct::num_type_fields],
list_of_memberst & vec,
unsigned int indent )

◆ do_type_cmp() [1/2]

bool do_type_cmp ( const ieee_floatt & side1,
const ieee_floatt & side2 )
inline

◆ do_type_cmp() [2/2]

template<class T>
bool do_type_cmp ( const T & side1,
const T & side2 )
inline

◆ do_type_lt() [1/7]

int do_type_lt ( const BigInt & side1,
const BigInt & side2 )

◆ do_type_lt() [2/7]

int do_type_lt ( const expr2tc & side1,
const expr2tc & side2 )

◆ do_type_lt() [3/7]

int do_type_lt ( const ieee_floatt & side1,
const ieee_floatt & side2 )
inline

◆ do_type_lt() [4/7]

int do_type_lt ( const std::vector< expr2tc > & side1,
const std::vector< expr2tc > & side2 )

◆ do_type_lt() [5/7]

int do_type_lt ( const std::vector< type2tc > & side1,
const std::vector< type2tc > & side2 )

◆ do_type_lt() [6/7]

template<class T>
int do_type_lt ( const T & side1,
const T & side2 )
inline

◆ do_type_lt() [7/7]

int do_type_lt ( const type2tc & side1,
const type2tc & side2 )

◆ type_to_string() [1/16]

std::string type_to_string ( const BigInt & theint,
int  )

◆ type_to_string() [2/16]

std::string type_to_string ( const bool & thebool,
int  )

◆ type_to_string() [3/16]

std::string type_to_string ( const constant_string_kindt & theval,
int  )

◆ type_to_string() [4/16]

std::string type_to_string ( const expr2tc & theval,
int indent )

◆ type_to_string() [5/16]

std::string type_to_string ( const fixedbvt & theval,
int  )

◆ type_to_string() [6/16]

std::string type_to_string ( const ieee_floatt & theval,
int  )

◆ type_to_string() [7/16]

std::string type_to_string ( const irep_idt & theval,
int  )

◆ type_to_string() [8/16]

std::string type_to_string ( const pointer_ref_kindt & theval,
int  )

◆ type_to_string() [9/16]

std::string type_to_string ( const printf_kindt & theval,
int  )

◆ type_to_string() [10/16]

std::string type_to_string ( const sideeffect_allockind & data,
int  )

◆ type_to_string() [11/16]

std::string type_to_string ( const std::vector< expr2tc > & theval,
int indent )

◆ type_to_string() [12/16]

std::string type_to_string ( const std::vector< irep_idt > & theval,
int indent )

◆ type_to_string() [13/16]

std::string type_to_string ( const std::vector< type2tc > & theval,
int indent )

◆ type_to_string() [14/16]

std::string type_to_string ( const symbol_renaming_level & theval,
int  )

◆ type_to_string() [15/16]

std::string type_to_string ( const type2tc & theval,
int indent )

◆ type_to_string() [16/16]

std::string type_to_string ( const unsigned int & theval,
int  )