Go to the documentation of this file.
20 for(std::vector<size_t>::const_iterator it=
map.begin();
45 const std::size_t new_size =
map.size() + numeric_cast_v<std::size_t>(*s);
46 map.reserve(new_size);
48 for(std::size_t i=
map.size(); i<new_size; ++i)
54 if(src.
id() == ID_c_enum_tag)
56 else if(src.
id()==ID_unsignedbv ||
57 src.
id()==ID_signedbv ||
58 src.
id()==ID_fixedbv ||
59 src.
id()==ID_floatbv ||
60 src.
id()==ID_c_enum ||
61 src.
id()==ID_c_bit_field)
67 const std::size_t bits_int = numeric_cast_v<std::size_t>(*bits);
68 const std::size_t base =
map.size();
70 for(
size_t bit=0; bit<bits_int; bit++)
72 map.push_back(base+bits_int-1-bit);
75 else if(src.
id()==ID_struct)
85 else if(src.
id() == ID_struct_tag)
89 else if(src.
id()==ID_array)
94 auto s = numeric_cast<mp_integer>(array_type.
size());
104 else if(src.
id()==ID_vector)
125 const std::size_t new_size =
map.size() + numeric_cast_v<std::size_t>(*s);
126 map.reserve(new_size);
128 for(std::size_t i=
map.size(); i<new_size; ++i)
const componentst & components() const
const c_enum_tag_typet & to_c_enum_tag_type(const typet &type)
Cast a typet to a c_enum_tag_typet.
const typet & subtype() const
void build(const typet &type, bool little_endian)
const struct_typet & to_struct_type(const typet &type)
Cast a typet to a struct_typet.
#define CHECK_RETURN(CONDITION)
The type of an expression, extends irept.
virtual void build_little_endian(const typet &type)
const union_typet & follow_tag(const union_tag_typet &) const
Follow type tag of union type.
virtual void build_big_endian(const typet &type)
const exprt & size() const
std::vector< size_t > map
optionalt< mp_integer > pointer_offset_bits(const typet &type, const namespacet &ns)
const irep_idt & id() const
const struct_tag_typet & to_struct_tag_type(const typet &type)
Cast a typet to a struct_tag_typet.
const constant_exprt & size() const
void output(std::ostream &) const
Structure type, corresponds to C style structs.
const array_typet & to_array_type(const typet &type)
Cast a typet to an array_typet.
const vector_typet & to_vector_type(const typet &type)
Cast a typet to a vector_typet.