10 struct obstack *type_obst;
36 ATOMIC_TYPE_ULONGLONG,
39 ATOMIC_TYPE_LONG_DOUBLE,
41 #ifdef PROVIDE_COMPLEX
42 ATOMIC_TYPE_FLOAT_COMPLEX,
43 ATOMIC_TYPE_DOUBLE_COMPLEX,
44 ATOMIC_TYPE_LONG_DOUBLE_COMPLEX,
46 #ifdef PROVIDE_IMAGINARY
47 ATOMIC_TYPE_FLOAT_IMAGINARY,
48 ATOMIC_TYPE_DOUBLE_IMAGINARY,
49 ATOMIC_TYPE_LONG_DOUBLE_IMAGINARY,
54 TYPE_QUALIFIER_CONST = 1 << 0,
55 TYPE_QUALIFIER_RESTRICT = 1 << 1,
56 TYPE_QUALIFIER_VOLATILE = 1 << 2,
57 TYPE_QUALIFIER_INLINE = 1 << 3,
65 struct atomic_type_t {
67 atomic_type_type_t atype;
70 struct builtin_type_t {
78 source_position_t source_position;
80 declaration_t *entries_begin;
81 declaration_t *entries_end;
85 struct pointer_type_t {
90 struct method_parameter_t {
92 method_parameter_t *next;
95 struct method_type_t {
98 method_parameter_t *parameters;
100 int unspecified_parameters;
103 struct compound_type_t {
107 source_position_t source_position;
109 compound_type_t *next;
112 type_t *make_atomic_type(atomic_type_type_t type, unsigned qualifiers);
113 type_t *make_pointer_type(type_t *points_to, unsigned qualifiers);