ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
dynamic_type_detail Namespace Reference

Classes

struct  numeric_bindingt

Functions

std::pair< std::string, std::string > callee_names (const nlohmann::json &func)
std::string scalar_name_kind (const std::string &type)
std::string nondet_leaf_kind (const std::string &leaf)
std::string constant_kind (const nlohmann::json &lit)
std::string classify_literal_value_kind (const nlohmann::json &value, const nlohmann::json &module_body=nlohmann::json())
bool & float_tags_possible ()
bool kinds_diverge (const std::unordered_set< std::string > &kinds)
std::string classify_name_kind (const std::string &name, const nlohmann::json &scope_body, const nlohmann::json &module_body=nlohmann::json())
std::string assigned_name (const nlohmann::json &target)
std::unordered_map< std::string, std::string > classify_branch_literal_assigns (const nlohmann::json &block, const nlohmann::json &scope_body, const nlohmann::json &module_body=nlohmann::json())
bool collect_branch_literal_kinds (const nlohmann::json &block, std::unordered_map< std::string, std::unordered_set< std::string > > &kinds, std::unordered_map< std::string, int > &leaf_count, int &leaf_total, const nlohmann::json &scope_body, const nlohmann::json &module_body=nlohmann::json())
bool collect_if_node_literal_kinds (const nlohmann::json &if_node, std::unordered_map< std::string, std::unordered_set< std::string > > &kinds, std::unordered_map< std::string, int > &leaf_count, int &leaf_total, const nlohmann::json &scope_body, const nlohmann::json &module_body=nlohmann::json())
bool assigns_name (const nlohmann::json &stmt, const std::string &name)
bool ifexp_arms_diverge (const nlohmann::json &value, const nlohmann::json &module_body)
bool scope_assigns_divergent_literal_types (const std::string &name, const nlohmann::json &scope_body, const nlohmann::json &module_body=nlohmann::json())
std::string numeric_binding_kind (const nlohmann::json &stmt, const std::string &name)
int line_field (const nlohmann::json &node, const char *key)
bool starts_after (const nlohmann::json &stmt, int before)
bool loop_spans (const nlohmann::json &stmt, int before)
void record_numeric_binding (const nlohmann::json &stmt, const std::string &name, bool nested, int before, std::vector< numeric_bindingt > &bindings)
void collect_numeric_bindings (const nlohmann::json &body, const std::string &name, bool nested, int before, bool include_later, std::vector< numeric_bindingt > &bindings)
bool is_path_dependent_number (const std::vector< numeric_bindingt > &bindings)

Function Documentation

◆ assigned_name()

std::string dynamic_type_detail::assigned_name ( const nlohmann::json & target)
inline

◆ assigns_name()

bool dynamic_type_detail::assigns_name ( const nlohmann::json & stmt,
const std::string & name )
inline

◆ callee_names()

std::pair< std::string, std::string > dynamic_type_detail::callee_names ( const nlohmann::json & func)
inline

◆ classify_branch_literal_assigns()

std::unordered_map< std::string, std::string > dynamic_type_detail::classify_branch_literal_assigns ( const nlohmann::json & block,
const nlohmann::json & scope_body,
const nlohmann::json & module_body = nlohmann::json() )
inline

◆ classify_literal_value_kind()

std::string dynamic_type_detail::classify_literal_value_kind ( const nlohmann::json & value,
const nlohmann::json & module_body = nlohmann::json() )
inline

◆ classify_name_kind()

std::string dynamic_type_detail::classify_name_kind ( const std::string & name,
const nlohmann::json & scope_body,
const nlohmann::json & module_body = nlohmann::json() )
inline

◆ collect_branch_literal_kinds()

bool dynamic_type_detail::collect_branch_literal_kinds ( const nlohmann::json & block,
std::unordered_map< std::string, std::unordered_set< std::string > > & kinds,
std::unordered_map< std::string, int > & leaf_count,
int & leaf_total,
const nlohmann::json & scope_body,
const nlohmann::json & module_body = nlohmann::json() )
inline

◆ collect_if_node_literal_kinds()

bool dynamic_type_detail::collect_if_node_literal_kinds ( const nlohmann::json & if_node,
std::unordered_map< std::string, std::unordered_set< std::string > > & kinds,
std::unordered_map< std::string, int > & leaf_count,
int & leaf_total,
const nlohmann::json & scope_body,
const nlohmann::json & module_body = nlohmann::json() )
inline

◆ collect_numeric_bindings()

void dynamic_type_detail::collect_numeric_bindings ( const nlohmann::json & body,
const std::string & name,
bool nested,
int before,
bool include_later,
std::vector< numeric_bindingt > & bindings )
inline

◆ constant_kind()

std::string dynamic_type_detail::constant_kind ( const nlohmann::json & lit)
inline

◆ float_tags_possible()

bool & dynamic_type_detail::float_tags_possible ( )
inline

◆ ifexp_arms_diverge()

bool dynamic_type_detail::ifexp_arms_diverge ( const nlohmann::json & value,
const nlohmann::json & module_body )
inline

◆ is_path_dependent_number()

bool dynamic_type_detail::is_path_dependent_number ( const std::vector< numeric_bindingt > & bindings)
inline

◆ kinds_diverge()

bool dynamic_type_detail::kinds_diverge ( const std::unordered_set< std::string > & kinds)
inline

◆ line_field()

int dynamic_type_detail::line_field ( const nlohmann::json & node,
const char * key )
inline

◆ loop_spans()

bool dynamic_type_detail::loop_spans ( const nlohmann::json & stmt,
int before )
inline

◆ nondet_leaf_kind()

std::string dynamic_type_detail::nondet_leaf_kind ( const std::string & leaf)
inline

◆ numeric_binding_kind()

std::string dynamic_type_detail::numeric_binding_kind ( const nlohmann::json & stmt,
const std::string & name )
inline

◆ record_numeric_binding()

void dynamic_type_detail::record_numeric_binding ( const nlohmann::json & stmt,
const std::string & name,
bool nested,
int before,
std::vector< numeric_bindingt > & bindings )
inline

◆ scalar_name_kind()

std::string dynamic_type_detail::scalar_name_kind ( const std::string & type)
inline

◆ scope_assigns_divergent_literal_types()

bool dynamic_type_detail::scope_assigns_divergent_literal_types ( const std::string & name,
const nlohmann::json & scope_body,
const nlohmann::json & module_body = nlohmann::json() )
inline

◆ starts_after()

bool dynamic_type_detail::starts_after ( const nlohmann::json & stmt,
int before )
inline