/** Gets the subtype at position pos, 0 <= pos < n_subtype. */
type *get_class_subtype (type *clss, int pos);
+/** Returns the index to access subclass as subtype of class.
+ *
+ * If subclass is no direct subtype of class returns -1.
+ */
+int get_class_subtype_index(type *clss, const type *subclass);
+
/** Sets the subtype at position pos, 0 <= pos < n_subtype.
*
* Does not set the corresponding supertype relation for subtype: this might
/** Returns the number of supertypes */
int get_class_n_supertypes (const type *clss);
-/** Returns the index of an supertype in a type. */
+/** Returns the index to access superclass as supertype of class.
+ *
+ * If superclass is no direct supertype of class returns -1.
+ */
int get_class_supertype_index(type *clss, type *super_clss);
/** Gets the supertype at position pos, 0 <= pos < n_supertype. */
/** Works only if bound is Const node with tarval that can be converted to long. */
long get_array_upper_bound_int (const type *array, int dimension);
+/** Sets an array dimension to a specific order. */
void set_array_order (type *array, int dimension, int order);
+
+/** Returns the order of an array dimension. */
int get_array_order (const type *array, int dimension);
+/** Find the array dimension that is placed at order ord. */
+int find_array_dimension(const type *array, int order);
+
+/** Sets the array element type. */
void set_array_element_type (type *array, type *tp);
+
+/** Gets the array element type. */
type *get_array_element_type (type *array);
+/** Sets the array element entity. */
void set_array_element_entity (type *array, entity *ent);
+
+/** Get the array element entity. */
entity *get_array_element_entity (const type *array);
/** Returns true if a type is an array type. */