removed shell
[libfirm] / ir / tr / entity.c
index ebe47d4..eb4d407 100644 (file)
@@ -5,7 +5,12 @@
 **
 */
 
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
 # include <stdlib.h>
+# include <stddef.h>
 # include "entity_t.h"
 # include "entity.h"
 # include "mangle.h"
@@ -38,24 +43,30 @@ new_entity (type *owner, ident *name, type *type)
 
   res->visit = 0;
 
-  /* add entity to the list of entities of the owner. */
-  // res->owner->member[res->owner->n_members] = res;
-  // res->owner->n_members ++;
+  switch (get_kind(owner)) {
+  case k_type_class: {
+    add_class_member ((type_class *) owner, res);
+  } break;
+  case k_type_strct: {
+    add_strct_member ((type_strct *) owner, res);
+  } break;
+  case k_type_union: {
+    /* not implemented */
+  } break;
+  case k_type_method: {
+    /* not implemented */
+  } break;
+  default: ;
+  }
 
   return res;
 }
 
-#if 0
-inline char *
+inline const char *
 get_entity_name (entity *ent) {
   assert (ent);
   return id_to_str(get_entity_ident(ent));
-  /* GL:
-     entity.c:52: warning: return discards `const' from pointer target type
-     -- ned so guud
-  */
 }
-#endif
 
 ident *
 get_entity_ident    (entity *ent) {
@@ -110,6 +121,16 @@ set_entity_type (entity *ent, type *type) {
   ent->type = type;
 }
 
+inline int
+get_entity_offset (entity *ent) {
+  return ent->offset;
+}
+
+inline void
+set_entity_offset (entity *ent, int offset) {
+  ent->offset = offset;
+}
+
 inline ir_graph *
 get_entity_irg(entity *ent) {
   assert (ent);