From 7a9412c0580ca80ba4e550659ac2e51ed505b437 Mon Sep 17 00:00:00 2001 From: Florian Liekweg Date: Fri, 25 Jun 2004 13:36:34 +0000 Subject: [PATCH] Better checking in set_entity_irg; added stickyness [r3214] --- ir/tr/entity.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/ir/tr/entity.c b/ir/tr/entity.c index 146745743..81390ff8e 100644 --- a/ir/tr/entity.c +++ b/ir/tr/entity.c @@ -95,6 +95,7 @@ new_entity (type *owner, ident *name, type *type) } res->peculiarity = peculiarity_existent; res->volatility = volatility_non_volatile; + res->stickyness = stickyness_unsticky; res->ld_name = NULL; if (is_class_type(owner)) { res->overwrites = NEW_ARR_F(entity *, 0); @@ -446,6 +447,22 @@ const char *get_peculiarity_name(peculiarity var) #undef X } +/** Get the entity's stickyness */ +ent_stickyness get_entity_stickyness (entity *ent) +{ + assert (ent && is_entity (ent)); + + return (ent->stickyness); +} + +/** Set the entity's stickyness */ +void set_entity_stickyness (entity *ent, ent_stickyness stickyness) +{ + assert (ent && is_entity (ent)); + + ent->stickyness = stickyness; +} + /* Set has no effect for existent entities of type method. */ ir_node * get_atomic_ent_value(entity *ent) @@ -840,7 +857,9 @@ set_entity_irg(entity *ent, ir_graph *irg) { * Methode selbst nicht mehr aufgerufen werden kann, die Entität * aber erhalten bleiben soll. */ /* assert(irg); */ - assert(ent->peculiarity == peculiarity_existent); + assert((irg && ent->peculiarity == peculiarity_existent) || + (!irg && ent->peculiarity == peculiarity_description) || + (!irg && ent->peculiarity == peculiarity_inherited)); ent->irg = irg; } -- 2.20.1