# ifdef HAVE_CONFIG_H
-# include <config.h>
+# include "config.h"
# endif
# include "typalise.h"
# endif /* not defined TRUE */
# include <assert.h>
+
+#ifdef HAVE_STRING_H
# include <string.h>
+#endif
-# include "irnode.h"
+# include "irnode_t.h"
# include "irgwalk.h"
# include "xmalloc.h"
+# include "gnu_ext.h"
/*
*/
static typalise_t *ta_exact (type *tp)
{
- typalise_t *ta = (typalise_t*) xmalloc (sizeof (typalise_t));
+ typalise_t *ta = xmalloc (sizeof (typalise_t));
ta->kind = type_exact;
ta->res.type = tp;
ta->id = ta_id ++;
- assert (is_class_type (tp));
+ assert (is_Class_type (tp));
return (ta);
}
static typalise_t *ta_types (lset_t *set)
{
- typalise_t *ta = (typalise_t*) xmalloc (sizeof (typalise_t));
+ typalise_t *ta = xmalloc (sizeof (typalise_t));
ta->kind = type_types;
ta->res.types = set;
ta->id = ta_id ++;
static typalise_t *ta_type (type *tp)
{
- typalise_t *ta = (typalise_t*) xmalloc (sizeof (typalise_t));
+ typalise_t *ta = xmalloc (sizeof (typalise_t));
ta->kind = type_type;
ta->res.type = tp;
ta->id = ta_id ++;
- assert (is_class_type (tp));
+ assert (is_Class_type (tp));
return (ta);
}
*/
static void _collect_subtypes (type *otype, lset_t *set)
{
- lset_insert (set, otype);
+ int i, n_sub;
- int n_sub = get_class_n_subtypes (otype);
- int i;
+ lset_insert (set, otype);
+ n_sub = get_class_n_subtypes (otype);
for (i = 0; i < n_sub; i ++) {
type *sub = get_class_subtype (otype, i);
*/
static void _collect_owner_types (entity *method, ir_graph *graph, lset_t *tps)
{
+ int i, n_over;
+
/* search DOWNwards in clazz hierarchy */
if ((peculiarity_description == get_entity_peculiarity (method)) ||
}
}
- int n_over = get_entity_n_overwrittenby (method);
- int i;
-
+ n_over = get_entity_n_overwrittenby (method);
for (i = 0; i < n_over; i ++) {
entity *ometh = get_entity_overwrittenby (method, i);
static int uses_graph (type *clazz, entity *meth, ir_graph *graph)
{
type *g_clazz = get_entity_owner (meth);
+ int i, n_over, use = FALSE;
if (g_clazz == clazz) {
return (TRUE);
}
/* else inherited or description */
- int use = FALSE;
- int i;
- int n_over = get_entity_n_overwrittenby (meth); /* DOWN-wards */
-
+ n_over = get_entity_n_overwrittenby (meth); /* DOWN-wards */
for (i = 0; (i < n_over) && (!use); i ++) {
entity *over = get_entity_overwrittenby (meth, i);
}
assert (0 && "invalid ta");
+ return FALSE;
}
} else {
/* ugh proj arg */
type *tp = get_method_param_type (get_entity_type (meth), n);
- if (is_pointer_type (tp)) {
+ if (is_Pointer_type (tp)) {
tp = get_pointer_points_to_type (tp);
}
typalise_t *ta = NULL;
type *tp = get_Cast_type (node);
- if (is_pointer_type (tp)) {
+ if (is_Pointer_type (tp)) {
tp = get_pointer_points_to_type (tp);
}
- assert (is_class_type (tp));
+ assert (is_Class_type (tp));
ta = typalise (get_Cast_op (node));
entity *ent = get_Sel_entity (node);
type *tp = get_entity_type (ent);
- if (is_method_type (tp)) {
+ if (is_Method_type (tp)) {
tp = get_entity_type (ent);
tp = get_method_res_type (tp, 0);
- if (is_pointer_type (tp)) {
+ if (is_Pointer_type (tp)) {
tp = get_pointer_points_to_type (tp);
}
res = ta_type (tp);
- } else if (is_class_type (tp)) {
+ } else if (is_Class_type (tp)) {
tp = get_entity_type (ent);
- if (is_pointer_type (tp)) {
+ if (is_Pointer_type (tp)) {
tp = get_pointer_points_to_type (tp);
}
res = ta_type (tp);
- } else if (is_pointer_type (tp)) {
+ } else if (is_Pointer_type (tp)) {
tp = get_pointer_points_to_type (tp);
res = ta_type (tp);
} else {
entity *ent = get_SymConst_entity (node);
type *tp = get_entity_type (ent);
tp = get_pointer_points_to_type (tp);
- assert (is_class_type (tp));
+ assert (is_Class_type (tp));
res = ta_type (tp); /* can't use ta_exact */
} else {
- fprintf (stdout, "can't handle SymConst %s?\n",
+ fprintf (stdout, "%s (%s:%i): can't handle SymConst %s?\n",
+ __FUNCTION__, __FILE__, __LINE__,
get_op_name (get_irn_op (node)));
res = NULL;
}
\f
/*
$Log$
+ Revision 1.8 2005/01/14 14:13:24 liekweg
+ fix gnu extension
+
+ Revision 1.7 2005/01/10 17:26:34 liekweg
+ fixup printfs, don't put environments on the stack
+
+ Revision 1.6 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.5 2004/12/22 14:43:14 beck
+ made allocations C-like
+
+ Revision 1.4 2004/12/21 15:50:18 beck
+ removed C99 constructs
+
+ Revision 1.3 2004/12/02 16:17:51 beck
+ fixed config.h include
+
Revision 1.2 2004/10/22 09:53:10 liekweg
Correctly handle proj_args