cprover
bv_endianness_map.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module:
4 
5 Author: Michael Tautschnig
6 
7 \*******************************************************************/
8 
9 #ifndef CPROVER_SOLVERS_FLATTENING_BV_ENDIANNESS_MAP_H
10 #define CPROVER_SOLVERS_FLATTENING_BV_ENDIANNESS_MAP_H
11 
12 #include <util/endianness_map.h>
13 
14 class boolbv_widtht;
15 
21 {
22 public:
24  const typet &type,
25  bool little_endian,
26  const namespacet &_ns,
27  boolbv_widtht &_boolbv_width)
28  : endianness_mapt(_ns), boolbv_width(_boolbv_width)
29  {
30  build(type, little_endian);
31  }
32 
33 protected:
35 
36  virtual void build_little_endian(const typet &type) override;
37  virtual void build_big_endian(const typet &type) override;
38 };
39 
40 #endif // CPROVER_SOLVERS_FLATTENING_BV_ENDIANNESS_MAP_H
bv_endianness_mapt::build_big_endian
virtual void build_big_endian(const typet &type) override
Definition: bv_endianness_map.cpp:30
endianness_mapt::build
void build(const typet &type, bool little_endian)
Definition: endianness_map.cpp:30
typet
The type of an expression, extends irept.
Definition: type.h:29
bv_endianness_mapt
Map bytes according to the configured endianness.
Definition: bv_endianness_map.h:21
bv_endianness_mapt::boolbv_width
boolbv_widtht & boolbv_width
Definition: bv_endianness_map.h:34
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition: namespace.h:92
bv_endianness_mapt::bv_endianness_mapt
bv_endianness_mapt(const typet &type, bool little_endian, const namespacet &_ns, boolbv_widtht &_boolbv_width)
Definition: bv_endianness_map.h:23
endianness_map.h
boolbv_widtht
Definition: boolbv_width.h:17
bv_endianness_mapt::build_little_endian
virtual void build_little_endian(const typet &type) override
Definition: bv_endianness_map.cpp:16
endianness_mapt
Maps a big-endian offset to a little-endian offset.
Definition: endianness_map.h:32