23 const std::string &suffix,
24 std::vector<irep_idt> &dest)
26 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;
const union_tag_typet & to_union_tag_type(const typet &type)
Cast a typet to a union_tag_typet.
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
There are a large number of kinds of tree structured or tree-like data in CPROVER.
bool get_bool(const irep_idt &name) const
const irep_idt & get(const irep_idt &name) const
const irep_idt & id() const
const std::string & get_string(const irep_idt &name) const
const union_typet & follow_tag(const union_tag_typet &) const
Follow type tag of union type.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
The type of an expression, extends irept.
irep_idt cpp_exception_id(const typet &src, const namespacet &ns)
turns a type into an exception ID
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
irept cpp_exception_list(const typet &src, const namespacet &ns)
turns a type into a list of relevant exception IDs
C++ Language Type Checking.
const std::string & id2string(const irep_idt &d)
const reference_typet & to_reference_type(const typet &type)
Cast a typet to a reference_typet.
#define CHECK_RETURN(CONDITION)
const struct_typet & to_struct_type(const typet &type)
Cast a typet to a struct_typet.
const struct_tag_typet & to_struct_tag_type(const typet &type)
Cast a typet to a struct_tag_typet.