Go to the documentation of this file.
21 const std::string &suffix,
22 std::vector<irep_idt> &dest)
24 if(src.
id() == ID_symbol_type)
28 else if(src.
id()==ID_pointer)
41 else if(src.
id() == ID_union_tag)
45 else if(src.
id()==ID_union)
48 dest.push_back(
"union_"+src.
get_string(ID_tag));
50 else if(src.
id() == ID_struct_tag)
54 else if(src.
id()==ID_struct)
57 dest.push_back(
"struct_"+src.
get_string(ID_tag));
81 std::vector<irep_idt> ids;
82 irept result(ID_exception_list);
85 result.
get_sub().resize(ids.size());
87 for(std::size_t i=0; i<ids.size(); i++)
98 std::vector<irep_idt> ids;
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
const union_tag_typet & to_union_tag_type(const typet &type)
Cast a typet to a union_tag_typet.
const typet & subtype() const
const struct_typet & to_struct_type(const typet &type)
Cast a typet to a struct_typet.
irep_idt cpp_exception_id(const typet &src, const namespacet &ns)
turns a type into an exception ID
The type of an expression, extends irept.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
bool get_bool(const irep_namet &name) const
irept cpp_exception_list(const typet &src, const namespacet &ns)
turns a type into a list of relevant exception IDs
const std::string & id2string(const irep_idt &d)
const typet & follow_tag(const union_tag_typet &) const
Follow type tag of union type.
const irep_idt & id() const
const struct_tag_typet & to_struct_tag_type(const typet &type)
Cast a typet to a struct_tag_typet.
void cpp_exception_list_rec(const typet &src, const namespacet &ns, const std::string &suffix, std::vector< irep_idt > &dest)
turns a type into a list of relevant exception IDs
const std::string & get_string(const irep_namet &name) const
const typet & follow(const typet &) const
Resolve type symbol to the type it points to.
const irep_idt & get(const irep_namet &name) const
Base class for tree-like data structures with sharing.
#define CHECK_RETURN(CONDITION)