res->peculiarity = peculiarity_existent;
res->volatility = volatility_non_volatile;
res->ld_name = NULL;
- res->overwrites = NEW_ARR_F(entity *, 0);
- res->overwrittenby = NEW_ARR_F(entity *, 0);
-
+ if (is_class_type(owner)) {
+ res->overwrites = NEW_ARR_F(entity *, 0);
+ res->overwrittenby = NEW_ARR_F(entity *, 0);
+ } else {
+ res->overwrites = NULL;
+ res->overwrittenby = NULL;
+ }
res->irg = NULL;
#ifdef DEBUG_libfirm
new = (entity *) xmalloc (sizeof (entity));
memcpy (new, old, sizeof (entity));
new->owner = new_owner;
- /*
- if ((get_type_tpop(get_entity_owner(old)) == type_class) &&
- (get_type_tpop(new_owner) == type_class)) {
- new->overwrites = DUP_ARR_F(entity *, old->overwrites);
- new->overwrittenby = DUP_ARR_F(entity *, old->overwrittenby);
- } else if ((get_type_tpop(get_entity_owner(old)) != type_class) &&
- (get_type_tpop(new_owner) == type_class)) {
- new->overwrites = NEW_ARR_F(entity *, 0);
- new->overwrittenby = NEW_ARR_F(entity *, 0);
- }
- */
if (is_class_type(new_owner)) {
- new->overwrites = NEW_ARR_F(entity *, 0);
+ new->overwrites = NEW_ARR_F(entity *, 0);
new->overwrittenby = NEW_ARR_F(entity *, 0);
}
#ifdef DEBUG_libfirm
new->name = new_name;
new->ld_name = NULL;
if (is_class_type(new->owner)) {
- new->overwrites = DUP_ARR_F(entity *, old->overwrites);
+ new->overwrites = DUP_ARR_F(entity *, old->overwrites);
new->overwrittenby = DUP_ARR_F(entity *, old->overwrittenby);
}
#ifdef DEBUG_libfirm
for (i = 0; i < (ARR_LEN (ent->overwrites)); i++)
if (ent->overwrites[i] == overwritten) {
for(; i < (ARR_LEN (ent->overwrites))-1; i++)
- ent->overwrites[i] = ent->overwrites[i+1];
+ ent->overwrites[i] = ent->overwrites[i+1];
ARR_SETLEN(entity*, ent->overwrites, ARR_LEN(ent->overwrites) - 1);
break;
}
for (i = 0; i < (ARR_LEN (ent->overwrittenby)); i++)
if (ent->overwrittenby[i] == overwrites) {
for(; i < (ARR_LEN (ent->overwrittenby))-1; i++)
- ent->overwrittenby[i] = ent->overwrittenby[i+1];
+ ent->overwrittenby[i] = ent->overwrittenby[i+1];
ARR_SETLEN(entity*, ent->overwrittenby, ARR_LEN(ent->overwrittenby) - 1);
break;
}