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)
57 src.
id() == ID_unsignedbv || src.
id() == ID_signedbv ||
58 src.
id() == ID_fixedbv || src.
id() == ID_floatbv || src.
id() == ID_c_enum ||
59 src.
id() == ID_c_bit_field || src.
id() == ID_bv)
65 const std::size_t bits_int = numeric_cast_v<std::size_t>(*bits);
66 const std::size_t base =
map.size();
68 for(
size_t bit=0; bit<bits_int; bit++)
70 map.push_back(base+bits_int-1-bit);
73 else if(src.
id()==ID_struct)
83 else if(src.
id() == ID_struct_tag)
87 else if(src.
id()==ID_array)
92 auto s = numeric_cast<mp_integer>(array_type.
size());
102 else if(src.
id()==ID_vector)
123 const std::size_t new_size =
map.size() + numeric_cast_v<std::size_t>(*s);
124 map.reserve(new_size);
126 for(std::size_t i=
map.size(); i<new_size; ++i)
const c_enum_tag_typet & to_c_enum_tag_type(const typet &type)
Cast a typet to a c_enum_tag_typet.
const typet & element_type() const
The type of the elements of the array.
const exprt & size() const
virtual void build_big_endian(const typet &type)
virtual void build_little_endian(const typet &type)
void build(const typet &type, bool little_endian)
std::vector< size_t > map
void output(std::ostream &) const
const irep_idt & id() const
const union_typet & follow_tag(const union_tag_typet &) const
Follow type tag of union type.
Structure type, corresponds to C style structs.
const componentst & components() const
The type of an expression, extends irept.
const constant_exprt & size() const
const typet & element_type() const
The type of the elements of the vector.
std::optional< mp_integer > pointer_offset_bits(const typet &type, const namespacet &ns)
#define CHECK_RETURN(CONDITION)
const vector_typet & to_vector_type(const typet &type)
Cast a typet to a vector_typet.
const struct_typet & to_struct_type(const typet &type)
Cast a typet to a struct_typet.
const array_typet & to_array_type(const typet &type)
Cast a typet to an array_typet.
const struct_tag_typet & to_struct_tag_type(const typet &type)
Cast a typet to a struct_tag_typet.