X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana2%2Fpto_name.c;h=50cfec7fbd632dc18ba4d1ab80470b4f2260e689;hb=ff0e8d7fcb34481652f0bf521ba04b1eca5e2106;hp=e77f64edec6dae4fe3a4a1b6a3c9e667bda5eaeb;hpb=06f46cfcf9e018ca5d0c735e7192f4e01fc0379b;p=libfirm diff --git a/ir/ana2/pto_name.c b/ir/ana2/pto_name.c index e77f64ede..50cfec7fb 100644 --- a/ir/ana2/pto_name.c +++ b/ir/ana2/pto_name.c @@ -8,7 +8,7 @@ Modified by: Created: Sat Nov 13 19:35:27 CET 2004 CVS-ID: $Id$ - Copyright: (c) 1999-2004 Universität Karlsruhe + Copyright: (c) 1999-2004 Universit�t Karlsruhe Licence: This file is protected by the GPL - GNU GENERAL PUBLIC LICENSE. */ @@ -24,7 +24,11 @@ # include "pto_name.h" # include "pto_util.h" +#include + +#ifdef HAVE_STRING_H # include /* for memcpy */ +#endif # include # include @@ -33,6 +37,7 @@ # include "xmalloc.h" # include "pto_debug.h" +# include "gnu_ext.h" /* Local Defines: */ # define obstack_chunk_alloc xmalloc @@ -197,9 +202,9 @@ static void pto_name_alloc_colors (void) /* See whether the given entity is a field. */ static int is_field (entity *ent) { - type *tp = get_entity_type (ent); + ir_type *tp = get_entity_type (ent); - if (is_primitive_type (tp) || is_pointer_type (tp)) { + if (is_Primitive_type (tp) || is_Pointer_type (tp)) { /* actually, we don't get by by restricting ourselves to pointer types */ return (TRUE); } else { @@ -207,9 +212,9 @@ static int is_field (entity *ent) } } -/* Helper to collect_fields(type*): collect all fields of the given +/* Helper to collect_fields(ir_type*): collect all fields of the given clazz and its super classes into the given obstack. */ -static void _collect_fields (type *clazz, struct obstack *obst) +static void _collect_fields (ir_type *clazz, struct obstack *obst) { int n_members = get_class_n_members (clazz); int n_supers = get_class_n_supertypes (clazz); @@ -226,7 +231,7 @@ static void _collect_fields (type *clazz, struct obstack *obst) } for (i = 0; i < n_supers; i ++) { - type *s_clazz = get_class_supertype (clazz, i); + ir_type *s_clazz = get_class_supertype (clazz, i); _collect_fields (s_clazz, obst); } @@ -234,7 +239,7 @@ static void _collect_fields (type *clazz, struct obstack *obst) /* Collect the fields of the given class and its super classes into an array. The last entry of the array is written NULL. */ -static entity **collect_fields (type *clazz) +static entity **collect_fields (ir_type *clazz) { struct obstack obst; int n_fields; @@ -242,12 +247,14 @@ static entity **collect_fields (type *clazz) void *tmp; if (NULL != get_type_link (clazz)) { - DBGPRINT (3, (stdout, "collect_fields(): reusing field list for \"%s\"\n", + DBGPRINT (3, (stdout, "%s: reusing field list for \"%s\"\n", + __FUNCTION__, get_type_name (clazz))); return ((entity **) get_type_link (clazz)); } else { - DBGPRINT (2, (stdout, "collect_fields(): new field list for \"%s\"\n", + DBGPRINT (2, (stdout, "%s: new field list for \"%s\"\n", + __FUNCTION__, get_type_name (clazz))); } @@ -260,10 +267,10 @@ static entity **collect_fields (type *clazz) n_fields = obstack_object_size (&obst) / sizeof (void*); - fields = NALLOC(n_fields * sizeof(*fields)); + fields = NALLOC (n_fields * sizeof (entity*)); tmp = obstack_finish(&obst); - memcpy (fields, tmp, n_fields * sizeof(*fields)); + memcpy (fields, tmp, n_fields * sizeof (entity*)); obstack_free (&obst, NULL); @@ -295,7 +302,7 @@ static void pto_name_dump_finish (FILE *stream) /* Write a node for the given descriptor into the given stream */ static void pto_name_dump_desc (desc_t *desc, FILE *stream) { - type *tp = desc->tp; + ir_type *tp = desc->tp; const char *tp_name = get_type_name (tp); ir_node *nd; @@ -338,7 +345,7 @@ static void pto_name_dump_desc (desc_t *desc, FILE *stream) for (i = 0; i < obj_desc->n_fields; i ++) { entity *field = obj_desc->fields [i]; - if (is_pointer_type (get_entity_type (field))) { + if (is_Pointer_type (get_entity_type (field))) { const char *ent_name = get_entity_name (field); fprintf (stream, "|<%i>%s", i, ent_name); @@ -460,24 +467,25 @@ qset_t *get_entry (desc_t *desc, entity *ent) return (arr_desc->value); } else { assert (0 && "invalid descriptor"); - return NULL; } + return NULL; } /* get a new descriptor for the given type at the given node */ -desc_t *new_name (type *tp, ir_node *node, int ctx) +desc_t *new_name (ir_type *tp, ir_node *node, int ctx) { desc_t *desc = NULL; - assert ((is_class_type (tp) || is_array_type (tp)) && "unsuitable type"); + assert ((is_Class_type (tp) || is_Array_type (tp)) && "unsuitable type"); - DBGPRINT (2, (stdout, "new_name(): new name for type \"%s\"\n", + DBGPRINT (2, (stdout, "%s: new name for type \"%s\"\n", + __FUNCTION__, get_type_name (tp))); fflush (stdout); - if (is_class_type (tp)) { - obj_desc_t *obj_desc = NALLOC(sizeof(*obj_desc)); + if (is_Class_type (tp)) { + obj_desc_t *obj_desc = NALLOC (sizeof (obj_desc_t)); int i; int n_fields; @@ -489,14 +497,14 @@ desc_t *new_name (type *tp, ir_node *node, int ctx) } obj_desc->n_fields = n_fields; - obj_desc->values = (qset_t**) NALLOC (n_fields * sizeof (qset_t)); + obj_desc->values = (qset_t**) NALLOC (n_fields * sizeof (qset_t*)); for (i = 0; i < n_fields; i ++) { obj_desc->values [i] = qset_new (N_INITIAL_OJBS, qset_obst); } desc = (desc_t*) obj_desc; - } else if (is_array_type (tp)) { + } else if (is_Array_type (tp)) { arr_desc_t *arr_desc = (arr_desc_t*) NALLOC (sizeof (arr_desc_t)); arr_desc->kind = array; @@ -527,13 +535,14 @@ desc_t *new_ent_name (entity *ent) { int i; int missing = TRUE; - type *tp = get_entity_type (ent); + ir_type *tp = get_entity_type (ent); - assert (is_pointer_type (tp)); + assert (is_Pointer_type (tp)); tp = get_pointer_points_to_type (tp); - assert (is_class_type (tp)); + assert (is_Class_type (tp)); - DBGPRINT (2, (stdout, "new_ent_name(): new name for entity \"%s\"\n", + DBGPRINT (2, (stdout, "%s: new name for entity \"%s\"\n", + __FUNCTION__, get_entity_name (ent))); DBGEXE (2, (fflush (stdout))); @@ -598,8 +607,8 @@ void pto_dump_names (const char *name) errno = 0; if (NULL == stream) { - fprintf (stderr, "pto_dump_names(): unable to open %s (%s)\n", - name, strerror (errno)); + fprintf (stderr, "%s: unable to open %s (%s)\n", + __FUNCTION__, name, strerror (errno)); return; } @@ -618,12 +627,12 @@ void pto_dump_names (const char *name) /* Initialise the name module */ void pto_name_init (void) { - DBGPRINT (3, (stdout, "(%s:%i) pto_name_init()\n", __FILE__, __LINE__)); + DBGPRINT (3, (stdout, "%s\n", __FUNCTION__)); assert (NULL == name_obst); assert (NULL == qset_obst); - name_obst = xmalloc (sizeof(*name_obst)); - qset_obst = xmalloc (sizeof(*qset_obst)); + name_obst = xmalloc (sizeof (struct obstack)); + qset_obst = xmalloc (sizeof (struct obstack)); obstack_init (name_obst); obstack_init (qset_obst); @@ -632,7 +641,7 @@ void pto_name_init (void) /* Cleanup the name module */ void pto_name_cleanup (void) { - DBGPRINT (3, (stdout, "(%s:%i) pto_name_cleanup()\n", __FILE__, __LINE__)); + DBGPRINT (3, (stdout, "%s\n", __FUNCTION__)); obstack_free (name_obst, NULL); obstack_free (qset_obst, NULL); @@ -649,6 +658,30 @@ void pto_name_cleanup (void) /* $Log$ + Revision 1.18 2006/01/13 22:56:21 beck + renamed all types 'type' to 'ir_type' + + Revision 1.17 2005/12/16 16:59:54 grund + *** empty log message *** + + Revision 1.16 2005/12/05 12:19:54 beck + added missing include (not anymore included in libFirm) + + Revision 1.15 2005/03/02 10:14:38 beck + placed a return on all execution pathes + + Revision 1.14 2005/02/17 08:45:38 liekweg + Don't return a value for an invalid descriptor + + Revision 1.13 2005/02/11 10:21:28 beck + get_entry now always returns a value + + Revision 1.12 2005/01/14 14:13:56 liekweg + fix gnu extension, fix fprintf's, fix allocs + + Revision 1.11 2005/01/05 14:25:54 beck + renames all is_x*_type() functions to is_X*_type() to prevent name clash with EDG fronten + Revision 1.10 2004/12/22 14:43:14 beck made allocations C-like