+
+/**------------------------------------------------------------------*/
+
+int get_type_n_arraytypes_of(type *tp) {
+ type ** pts;
+
+ assert(tp && is_type(tp));
+
+ pts = get_type_arraytype_array(tp);
+ return ARR_LEN(pts);
+}
+
+type *get_type_arraytype_of(type *tp, int pos) {
+ type ** pts;
+
+ assert(0 <= pos && pos < get_type_n_arraytypes_of(tp));
+
+ pts = get_type_arraytype_array(tp);
+ return pts[pos];
+}
+
+void add_type_arraytype_of(type *tp, type *atp) {
+ type ** pts;
+
+ assert(tp && is_type(tp));
+ assert(atp && is_Array_type(atp));
+
+ pts = get_type_arraytype_array(tp);
+ ARR_APP1(ir_node *, pts, atp);
+ set_type_arraytype_array(tp, pts);
+}
+
+void set_type_arraytype_of(type *tp, int pos, type *atp) {
+ type ** pts;
+
+ assert(0 <= pos && pos < get_type_n_arraytypes_of(tp));
+ assert(atp && is_Array_type(atp));
+
+ pts = get_type_arraytype_array(tp);
+ pts[pos] = atp;
+}
+