cprover
ansi_c_convert_type.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: ANSI-C Language Conversion
4 
5 Author: Daniel Kroening, kroening@kroening.com
6 
7 \*******************************************************************/
8 
11 
12 #ifndef CPROVER_ANSI_C_ANSI_C_CONVERT_TYPE_H
13 #define CPROVER_ANSI_C_ANSI_C_CONVERT_TYPE_H
14 
15 #include <util/message.h>
16 
17 #include "c_qualifiers.h"
18 #include "c_storage_spec.h"
19 
21 {
22 public:
27 
28  // extensions
36  bv_cnt,
38 
40 
41  bool packed, aligned;
43  exprt msc_based; // this is Visual Studio
45 
46  // storage spec
48 
49  // qualifiers
51 
52  void read(const typet &type);
53  void write(typet &type);
54 
56 
57  std::list<typet> other;
58 
59  explicit ansi_c_convert_typet(message_handlert &_message_handler):
60  messaget(_message_handler)
61  // class members are initialized by calling read()
62  {
63  }
64 
65  void clear()
66  {
82 
84 
85  other.clear();
88  }
89 
90 protected:
91  void read_rec(const typet &type);
92 };
93 
94 #endif // CPROVER_ANSI_C_ANSI_C_CONVERT_TYPE_H
The type of an expression, extends irept.
Definition: type.h:27
virtual void clear() override
Definition: c_qualifiers.h:79
source_locationt source_location
Class that provides messages with a built-in verbosity 'level'.
Definition: message.h:144
std::list< typet > other
c_storage_spect c_storage_spec
void read(const typet &type)
Base class for all expressions.
Definition: expr.h:54
void read_rec(const typet &type)
void make_nil()
Definition: irep.h:315
ansi_c_convert_typet(message_handlert &_message_handler)