ir_type *base_type; /**< For bitfield types: The base primitive type, NULL else. */
} pri_attr;
-
-/*
-typedef struct { * No private attr, must be smaller than others! *
-} id_attr;
-*/
-
/** General type attributes. */
typedef union {
cls_attr ca; /**< Attributes of a class type */
/** Additional type flags. */
enum type_flags {
- tf_none = 0, /**< No flags. */
- tf_frame_type = 1, /**< Set if this is a frame type. */
- tf_value_param_type = 2, /**< Set if this is a value param type. */
- tf_lowered_type = 4, /**< Set if this is a lowered type. */
- tf_layout_fixed = 8, /**< Set if the layout of a type is fixed */
- tf_global_type = 16, /**< Set only for the global type */
- tf_tls_type = 32, /**< Set only for the tls type */
+ tf_none = 0, /**< No flags. */
+ tf_lowered_type = 1, /**< Set if this is a lowered type. */
+ tf_layout_fixed = 2, /**< Set if the layout of a type is fixed */
+
+ tf_frame_type = 4, /**< Set if this is a frame type. */
+ tf_value_param_type = 8, /**< Set if this is a value param type. */
+ tf_global_type = 16, /**< Set only for the global type */
+ tf_tls_type = 32, /**< Set only for the tls type */
+ tf_constructors = 64, /**< Set only for the constructors segment type */
+ tf_destructors = 128, /**< Set only for the destructors segment type */
};
/**
* initialized. The type is in state layout_undefined.
*/
ir_type *
-new_type(tp_op *type_op, ir_mode *mode, ident *name, dbg_info *db);
+new_type(const tp_op *type_op, ir_mode *mode, ident *name, dbg_info *db);
void free_type_attrs (ir_type *tp);
void free_class_entities (ir_type *clss);