From 92f36789152a5daede44fe568dd0dda4edc14945 Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=B6tz=20Lindenmaier?= Date: Fri, 28 Jun 2002 09:59:58 +0000 Subject: [PATCH] Added support for prculiarity "inherited" [r422] --- ir/tr/entity.c | 2 +- ir/tr/entity.h | 4 +++- ir/tr/type.h | 13 +++++++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/ir/tr/entity.c b/ir/tr/entity.c index b2c482eac..66d501602 100644 --- a/ir/tr/entity.c +++ b/ir/tr/entity.c @@ -147,7 +147,7 @@ get_entity_ident (entity *ent) { } /* -void set_entity_ld_name (entity *, char *ld_name); +void set_entitye_ld_name (entity *, char *ld_name); void set_entity_ld_ident (entity *, ident *ld_ident); */ diff --git a/ir/tr/entity.h b/ir/tr/entity.h index f5931b2ba..7b01bc077 100644 --- a/ir/tr/entity.h +++ b/ir/tr/entity.h @@ -85,6 +85,7 @@ typedef struct ir_graph ir_graph; * external_visible, external_allocated) * variability A flag indicating the variability of this entity (values: * uninitialized, initalized, part_constant, constant) + * volatility @@@ * offset The offset of the entity within the compound object. Only set * if the owner in the state "layout_fixed". * overwrites A list of entities overwritten by this entity. This list is only @@ -177,7 +178,8 @@ typedef enum { be static_allocated. */ external_allocated /* The entity is defined and allocated externally. This compilation must not allocate memory for this entity. The entity must - be static_allocated. */ + be static_allocated. This can also be an external defined + method. */ } ent_visibility; ent_visibility get_entity_visibility (entity *ent); diff --git a/ir/tr/type.h b/ir/tr/type.h index 762fd0df0..0f2afbcd9 100644 --- a/ir/tr/type.h +++ b/ir/tr/type.h @@ -94,7 +94,7 @@ typedef struct ir_node ir_node; * A fixed layout for enumeration types means that each enumeration * is associated with an implementation value. * visit A counter for walks of the type information. - * link A void* to associate some additional inforamtion with the type. + * link A void* to associate some additional information with the type. * * These fields can only be accessed via access functions. * @@ -209,7 +209,11 @@ int is_type (void *thing); * peculiarity The peculiarity of this class. If the class is of peculiarity * "description" it only is a description of requirememts to a class, * as, e.g., a Java interface. The class will never be allocated. - * Values: description, existent. Default: existent. + * Peculiatity inherited is only possible for entities. An entity + * is of peculiarity inherited if the compiler generated the entity + * to explicitly resolve inheritance. An inherited method entity has + * no value for irg. + * Values: description, existent, inherited. Default: existent. * * SOURCE */ @@ -273,6 +277,11 @@ void remove_class_supertype(type *clss, type *supertype); typedef enum peculiarity { description, /* Represents only a description. The entity/type is never allocated, no code/data exists for this entity/type. */ + inherited, /* Describes explicitly that other entities are inherited + to the owner of this entity. Overwrites must refer to + at least one other entity. If this is a method entity + there exists no irg for this entity, only for one of + the overwritten ones. */ existent /* The entity/type (can) exist. */ } peculiarity; -- 2.20.1