-INLINE type *
-new_type(tp_op *type_op,
- ir_mode *mode,
- ident* name);
-void free_type_attrs (type *tp);
-
-INLINE void free_class_entities (type *clss);
-INLINE void free_struct_entities (type *strct);
-INLINE void free_method_entities (type *method);
-INLINE void free_union_entities (type *uni);
-INLINE void free_array_entities (type *array);
-INLINE void free_enumeration_entities(type *enumeration);
-INLINE void free_pointer_entities (type *pointer);
-INLINE void free_primitive_entities (type *primitive);
-
-INLINE void free_class_attrs (type *clss);
-INLINE void free_struct_attrs (type *strct);
-INLINE void free_method_attrs (type *method);
-INLINE void free_union_attrs (type *uni);
-INLINE void free_array_attrs (type *array);
-INLINE void free_enumeration_attrs(type *enumeration);
-INLINE void free_pointer_attrs (type *pointer);
-INLINE void free_primitive_attrs (type *primitive);
-
-
-/** initialize the type module */
-void init_type (void);
+ir_type *
+new_type(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);
+void free_struct_entities (ir_type *strct);
+void free_method_entities (ir_type *method);
+void free_union_entities (ir_type *uni);
+void free_array_entities (ir_type *array);
+void free_enumeration_entities(ir_type *enumeration);
+void free_pointer_entities (ir_type *pointer);
+
+void free_array_automatic_entities(ir_type *array);
+
+void free_class_attrs (ir_type *clss);
+void free_struct_attrs (ir_type *strct);
+void free_method_attrs (ir_type *method);
+void free_union_attrs (ir_type *uni);
+void free_array_attrs (ir_type *array);
+void free_enumeration_attrs(ir_type *enumeration);
+void free_pointer_attrs (ir_type *pointer);
+
+void set_class_mode(ir_type *tp, ir_mode *mode);
+void set_struct_mode(ir_type *tp, ir_mode *mode);
+void set_pointer_mode(ir_type *tp, ir_mode *mode);
+void set_primitive_mode(ir_type *tp, ir_mode *mode);
+void set_enumeration_mode(ir_type *tp, ir_mode *mode);
+
+void set_class_size_bits(ir_type *tp, int bits);
+void set_struct_size_bits(ir_type *tp, int bits);
+void set_union_size_bits(ir_type *tp, int bits);
+void set_array_size_bits(ir_type *tp, int size);
+void set_default_size_bits(ir_type *tp, int size);
+
+/**
+ * Initialize the type module.
+ *
+ * @param builtin_db debug info for built-in objects
+ * @param default_cc_mask default calling conventions for methods
+ */
+void firm_init_type(dbg_info *builtin_db, unsigned default_cc_mask);