void set_entity_owner (entity *ent, type *owner);
/** Asserts if the type owner is neither a compound type or an array */
-INLINE void assert_legal_owner_of_ent(type *owner);
+void assert_legal_owner_of_ent(type *owner);
/** Returns the type of an entity. */
type *get_entity_type (entity *ent);
allocation_dynamic, /**< The entity is allocated during runtime, explicitly
by an Alloc node. */
allocation_static /**< The entity is allocated statically. We can use a
- SymConst(?) as address of the entity. */
+ Const as address of the entity. */
} ent_allocation;
/** Returns the allocation type of an entity. */
/** Sets the allocation type of an entity. */
void set_entity_allocation (entity *ent, ent_allocation al);
-/** Return the name of the visibility */
+/** Return the name of the allocation type. */
const char *get_allocation_name(ent_allocation vis);
/**
/** Outputs a unique number for this entity if libfirm is compiled for
debugging, (configure with --enable-debug) else returns 0. */
-INLINE long get_entity_nr(entity *ent);
+long get_entity_nr(entity *ent);
/** Returns the entitys visited count. */
unsigned long get_entity_visited(entity *ent);
/** Returns true if this entity was not visited. */
bool entity_not_visited(entity *ent);
+/** Returns the dynamically referenced entity if the static entity and the
+ * dynamic type are given. */
+entity *resolve_ent_polymorphy(type *dynamic_class, entity* static_ent);
+
+
+/*-----------------------------------------------------------------*/
+/* Debug aides */
+/*-----------------------------------------------------------------*/
+
+
+/** Write the entity and all its attributes to stdout.
+ *
+ * Writes the entity and all its attributes to stdout if DEBUG_libfirm
+ * is set. Else does nothing. */
+void dump_entity (entity *ent);
+
+
# endif /* _ENTITY_H_ */