1 /* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
2 ** All rights reserved.
4 ** Authors: Martin Trapp, Christian Schaefer
14 # include "entity_t.h"
18 /*******************************************************************/
20 /*******************************************************************/
27 /*******************************************************************/
29 /*******************************************************************/
32 new_entity (type *owner, ident *name, type *type)
36 res = (entity *) malloc (sizeof (entity));
38 assert_legal_owner_of_ent(owner);
46 switch (get_type_tpop_code(owner)) {
48 add_class_member (owner, res);
51 add_struct_member (owner, res);
54 add_union_member (owner, res);
63 get_entity_name (entity *ent) {
65 return id_to_str(get_entity_ident(ent));
69 get_entity_ident (entity *ent) {
75 void set_entity_ld_name (entity *, char *ld_name);
76 void set_entity_ld_ident (entity *, ident *ld_ident);
80 get_entity_owner (entity *ent) {
85 set_entity_owner (entity *ent, type *owner) {
86 assert_legal_owner_of_ent(owner);
90 inline void /* should this go into type.c? */
91 assert_legal_owner_of_ent(type *owner) {
92 assert (get_type_tpop_code(owner) == tpo_class ||
93 get_type_tpop_code(owner) == tpo_union ||
94 get_type_tpop_code(owner) == tpo_struct);
98 get_entity_ld_name (entity *ent)
100 if (ent->ld_name != NULL) return ent->ld_name;
101 return mangle_entity (ent);
105 char *get_entity_ld_name (entity *);
106 void set_entity_ld_name (entity *, char *ld_name);
107 void set_entity_ld_ident (entity *, ident *ld_ident);
111 get_entity_type (entity *ent) {
116 set_entity_type (entity *ent, type *type) {
121 get_entity_offset (entity *ent) {
126 set_entity_offset (entity *ent, int offset) {
127 ent->offset = offset;
131 get_entity_irg(entity *ent) {
133 assert (is_method_type(ent->type));
138 set_entity_irg(entity *ent, ir_graph *irg) {
139 assert (ent && ent->type);
141 assert (is_method_type(ent->type));