aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/expr.c
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2010-05-17 20:45:32 +0200
committerJanus Weil <janus@gcc.gnu.org>2010-05-17 20:45:32 +0200
commitd15bac214b2de189f37c17612dfa9f0e495e90f1 (patch)
treea37de26e524676acb8ec93419f6ba56004d28d9c /gcc/fortran/expr.c
parentd5d74497b283d6a2623ec4d1a2d5fb99cbf97c1b (diff)
downloadgcc-d15bac214b2de189f37c17612dfa9f0e495e90f1.zip
gcc-d15bac214b2de189f37c17612dfa9f0e495e90f1.tar.gz
gcc-d15bac214b2de189f37c17612dfa9f0e495e90f1.tar.bz2
class.c (gfc_add_component_ref,gfc_class_null_initializer, [...]): Moved here from other places.
2010-05-17 Janus Weil <janus@gcc.gnu.org> * class.c (gfc_add_component_ref,gfc_class_null_initializer, gfc_build_class_symbol,add_proc_component,add_proc_comps, add_procs_to_declared_vtab1,copy_vtab_proc_comps, add_procs_to_declared_vtab,add_generic_specifics, add_generics_to_declared_vtab,gfc_find_derived_vtab, find_typebound_proc_uop,gfc_find_typebound_proc, gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op, gfc_get_tbp_symtree): Moved here from other places. * expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to class.c. * gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab, gfc_find_typebound_proc,gfc_find_typebound_user_op, gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree, gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c. * Make-lang.in: Add class.o. * symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps, add_procs_to_declared_vtab1,copy_vtab_proc_comps, add_procs_to_declared_vtab,add_generic_specifics, add_generics_to_declared_vtab,gfc_find_derived_vtab, find_typebound_proc_uop,gfc_find_typebound_proc, gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op, gfc_get_tbp_symtree): Move to class.c. From-SVN: r159506
Diffstat (limited to 'gcc/fortran/expr.c')
-rw-r--r--gcc/fortran/expr.c56
1 files changed, 0 insertions, 56 deletions
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index 382d1fe..75f27be 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -676,36 +676,6 @@ gfc_has_vector_index (gfc_expr *e)
}
-/* Insert a reference to the component of the given name.
- Only to be used with CLASS containers. */
-
-void
-gfc_add_component_ref (gfc_expr *e, const char *name)
-{
- gfc_ref **tail = &(e->ref);
- gfc_ref *next = NULL;
- gfc_symbol *derived = e->symtree->n.sym->ts.u.derived;
- while (*tail != NULL)
- {
- if ((*tail)->type == REF_COMPONENT)
- derived = (*tail)->u.c.component->ts.u.derived;
- if ((*tail)->type == REF_ARRAY && (*tail)->next == NULL)
- break;
- tail = &((*tail)->next);
- }
- if (*tail != NULL && strcmp (name, "$data") == 0)
- next = *tail;
- (*tail) = gfc_get_ref();
- (*tail)->next = next;
- (*tail)->type = REF_COMPONENT;
- (*tail)->u.c.sym = derived;
- (*tail)->u.c.component = gfc_find_component (derived, name, true, true);
- gcc_assert((*tail)->u.c.component);
- if (!next)
- e->ts = (*tail)->u.c.component->ts;
-}
-
-
/* Copy a shape array. */
mpz_t *
@@ -3628,32 +3598,6 @@ gfc_default_initializer (gfc_typespec *ts)
}
-/* Build a NULL initializer for CLASS pointers,
- initializing the $data and $vptr components to zero. */
-
-gfc_expr *
-gfc_class_null_initializer (gfc_typespec *ts)
-{
- gfc_expr *init;
- gfc_component *comp;
-
- init = gfc_get_structure_constructor_expr (ts->type, ts->kind,
- &ts->u.derived->declared_at);
- init->ts = *ts;
-
- for (comp = ts->u.derived->components; comp; comp = comp->next)
- {
- gfc_constructor *ctor = gfc_constructor_get();
- ctor->expr = gfc_get_expr ();
- ctor->expr->expr_type = EXPR_NULL;
- ctor->expr->ts = comp->ts;
- gfc_constructor_append (&init->value.constructor, ctor);
- }
-
- return init;
-}
-
-
/* Given a symbol, create an expression node with that symbol as a
variable. If the symbol is array valued, setup a reference of the
whole array. */