cprover
bv_endianness_map.cpp
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module:
4
5
Author: Michael Tautschnig
6
7
\*******************************************************************/
8
9
#include "
bv_endianness_map.h
"
10
11
#include <
util/arith_tools.h
>
12
#include <
util/c_types.h
>
13
14
#include "
boolbv_width.h
"
15
16
void
bv_endianness_mapt::build_little_endian
(
const
typet
&src)
17
{
18
const
std::size_t width =
boolbv_width
(src);
19
20
if
(width == 0)
21
return
;
22
23
const
std::size_t new_size =
map
.size() + width;
24
map
.reserve(new_size);
25
26
for
(std::size_t i =
map
.size(); i < new_size; ++i)
27
map
.push_back(i);
28
}
29
30
void
bv_endianness_mapt::build_big_endian
(
const
typet
&src)
31
{
32
if
(src.
id
() == ID_pointer)
33
build_little_endian
(src);
34
else
35
endianness_mapt::build_big_endian
(src);
36
}
bv_endianness_mapt::build_big_endian
virtual void build_big_endian(const typet &type) override
Definition:
bv_endianness_map.cpp:30
arith_tools.h
bv_endianness_map.h
typet
The type of an expression, extends irept.
Definition:
type.h:29
endianness_mapt::build_big_endian
virtual void build_big_endian(const typet &type)
Definition:
endianness_map.cpp:52
bv_endianness_mapt::boolbv_width
boolbv_widtht & boolbv_width
Definition:
bv_endianness_map.h:34
endianness_mapt::map
std::vector< size_t > map
Definition:
endianness_map.h:67
irept::id
const irep_idt & id() const
Definition:
irep.h:418
bv_endianness_mapt::build_little_endian
virtual void build_little_endian(const typet &type) override
Definition:
bv_endianness_map.cpp:16
boolbv_width.h
c_types.h
solvers
flattening
bv_endianness_map.cpp
Generated by
1.8.20