set_class_mode,
set_class_size_bits,
get_class_n_members,
- get_class_member
+ get_class_member,
+ get_class_member_index
},
/** tpop operations for struct types */
struct_ops = {
set_struct_mode,
set_struct_size_bits,
get_struct_n_members,
- get_struct_member
+ get_struct_member,
+ get_struct_member_index
},
/** tpop operations for method types */
method_ops = {
NULL,
NULL,
NULL,
+ NULL,
NULL
},
/** tpop operations for union types */
NULL,
set_union_size_bits,
get_union_n_members,
- get_union_member
+ get_union_member,
+ get_union_member_index
},
/** tpop operations for array types */
array_ops = {
NULL,
set_array_size_bits,
NULL,
+ NULL,
NULL
},
/** tpop operations for enumeration types */
set_enumeration_mode,
NULL,
NULL,
+ NULL,
NULL
},
/** tpop operations for pointer types */
set_pointer_mode,
NULL,
NULL,
+ NULL,
NULL
},
/** tpop operations for pseudo types */
NULL,
set_default_size_bits,
NULL,
+ NULL,
NULL
},
/** tpop operations for primitive types */
NULL,
NULL,
NULL,
+ NULL,
NULL
};
/** A function called to get the pos'th compound member */
typedef entity *(*get_member_func)(const ir_type *tp, int pos);
+typedef int (*get_member_index_func)(const ir_type *tp, entity *member);
+
/** A function called to insert an entity into the type */
typedef void (*insert_entity_func)(ir_type *tp, entity *member);
-
/**
* tp_op operations.
*/
set_type_size_func set_type_size; /**< called to set the bit size of a type */
get_n_members_func get_n_members; /**< called to return the number of compound members */
get_member_func get_member; /**< called to get the pos'th compound member */
+ get_member_index_func get_member_index; /**< called to get the index of a compound member */
} tp_op_ops;
/** possible flags for a type opcode */