/** general **/
/*******************************************************************/
-unsigned long entity_visited;
-
void
init_entity (void)
{
/** ENTITY **/
/*******************************************************************/
+INLINE type *get_entity_owner (entity *ent);
+
INLINE void insert_entity_in_owner (entity *ent) {
type *owner = ent->owner;
switch (get_type_tpop_code(owner)) {
insert_entity_in_owner (res);
return res;
}
-
+entity *
+new_d_entity (type *owner, ident *name, type *type, dbg_info *db) {
+ entity *res = new_entity(owner, name, type);
+ set_entity_dbg_info(res, db);
+ return res;
+}
INLINE void free_entity_attrs(entity *ent) {
assert(ent);
if (get_type_tpop(get_entity_owner(ent)) == type_class) {
ent->val_ents[pos+1] = member;
}
+void
+remove_compound_ent_value(entity *ent, entity *value_ent) {
+ int i;
+ assert(ent && is_compound_entity(ent) && (ent->variability != uninitialized));
+ for (i = 1; i < (ARR_LEN (ent->val_ents)); i++) {
+ if (ent->val_ents[i] == value_ent) {
+ for(; i < (ARR_LEN (ent->val_ents))-1; i++) {
+ ent->val_ents[i] = ent->val_ents[i+1];
+ ent->values[i] = ent->values[i+1];
+ }
+ ARR_SETLEN(entity*, ent->val_ents, ARR_LEN(ent->val_ents) - 1);
+ ARR_SETLEN(ir_node*, ent->values, ARR_LEN(ent->values) - 1);
+ break;
+ }
+ }
+}
+
void
set_array_entity_values(entity *ent, tarval **values, int num_vals) {
int i;
/* Sets visited field in entity to entity_visited. */
void mark_entity_visited(entity *entity) {
assert (entity);
- entity->visit = entity_visited;
+ entity->visit = type_visited;
}