From 8de98d42c8ade7c3c1f84387593244b642d51ed3 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Fri, 27 Jan 2006 17:00:48 +0000 Subject: [PATCH] get_member_index type operation added [r7278] --- ir/tr/tpop.c | 15 ++++++++++++--- ir/tr/tpop_t.h | 4 +++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/ir/tr/tpop.c b/ir/tr/tpop.c index 738b8b598..6eb68527b 100644 --- a/ir/tr/tpop.c +++ b/ir/tr/tpop.c @@ -63,7 +63,8 @@ static const tp_op_ops 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 = { @@ -73,7 +74,8 @@ static const tp_op_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 = { @@ -83,6 +85,7 @@ static const tp_op_ops NULL, NULL, NULL, + NULL, NULL }, /** tpop operations for union types */ @@ -93,7 +96,8 @@ static const tp_op_ops 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 = { @@ -103,6 +107,7 @@ static const tp_op_ops NULL, set_array_size_bits, NULL, + NULL, NULL }, /** tpop operations for enumeration types */ @@ -113,6 +118,7 @@ static const tp_op_ops set_enumeration_mode, NULL, NULL, + NULL, NULL }, /** tpop operations for pointer types */ @@ -123,6 +129,7 @@ static const tp_op_ops set_pointer_mode, NULL, NULL, + NULL, NULL }, /** tpop operations for pseudo types */ @@ -133,6 +140,7 @@ static const tp_op_ops NULL, set_default_size_bits, NULL, + NULL, NULL }, /** tpop operations for primitive types */ @@ -143,6 +151,7 @@ static const tp_op_ops NULL, NULL, NULL, + NULL, NULL }; diff --git a/ir/tr/tpop_t.h b/ir/tr/tpop_t.h index 87b8718eb..91c4829a0 100644 --- a/ir/tr/tpop_t.h +++ b/ir/tr/tpop_t.h @@ -48,10 +48,11 @@ typedef int (*get_n_members_func)(const ir_type *tp); /** 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. */ @@ -63,6 +64,7 @@ typedef struct _tp_op_ops { 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 */ -- 2.20.1