diff options
author | Janus Weil <janus@gcc.gnu.org> | 2008-08-23 23:04:01 +0200 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2008-08-23 23:04:01 +0200 |
commit | d4b7d0f0520f0f91874b1404b53bd6519affe559 (patch) | |
tree | bd962221be72af567e44311a383658a3085306b7 /gcc/fortran/resolve.c | |
parent | 00fc23337d06089d5662383e2f6bdea105055894 (diff) | |
download | gcc-d4b7d0f0520f0f91874b1404b53bd6519affe559.zip gcc-d4b7d0f0520f0f91874b1404b53bd6519affe559.tar.gz gcc-d4b7d0f0520f0f91874b1404b53bd6519affe559.tar.bz2 |
gfortran.h (gfc_component): Add field "symbol_attribute attr"...
2008-08-23 Janus Weil <janus@gcc.gnu.org>
* gfortran.h (gfc_component): Add field "symbol_attribute attr", remove
fields "pointer", "allocatable", "dimension", "access".
Remove functions "gfc_set_component_attr" and "gfc_get_component_attr".
* interface.c (gfc_compare_derived_types): Ditto.
* trans-array.c (gfc_array_allocate,structure_alloc_comps): Ditto.
* trans-expr.c (gfc_conv_component_ref,gfc_trans_subcomponent_assign,
gfc_conv_structure): Ditto.
* symbol.c (gfc_find_component,free_components,gfc_set_component_attr,
gfc_get_component_attr,verify_bind_c_derived_type,
generate_isocbinding_symbol): Ditto.
* decl.c (build_struct): Ditto.
* dump-parse-tree.c (show_components): Ditto.
* trans-stmt.c (gfc_trans_deallocate): Ditto.
* expr.c (gfc_check_assign,gfc_check_pointer_assign,
gfc_default_initializer): Ditto.
* module.c (mio_component): Ditto.
* trans-types.c (copy_dt_decls_ifequal,gfc_get_derived_type): Ditto.
* resolve.c (has_default_initializer,resolve_structure_cons,
gfc_iso_c_func_interface,find_array_spec,resolve_ref,
resolve_deallocate_expr,resolve_allocate_expr,resolve_fl_derived,
resolve_equivalence_derived): Ditto.
* trans-io.c (transfer_expr): Ditto.
* parse.c (parse_derived): Ditto.
* dependency.c (gfc_check_dependency): Ditto.
* primary.c (gfc_variable_attr): Ditto.
From-SVN: r139524
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 994cb71..51d0654 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -648,7 +648,7 @@ has_default_initializer (gfc_symbol *der) for (c = der->components; c; c = c->next) if ((c->ts.type != BT_DERIVED && c->initializer) || (c->ts.type == BT_DERIVED - && (!c->pointer && has_default_initializer (c->ts.derived)))) + && (!c->attr.pointer && has_default_initializer (c->ts.derived)))) break; return c != NULL; @@ -810,7 +810,7 @@ resolve_structure_cons (gfc_expr *expr) rank = comp->as ? comp->as->rank : 0; if (cons->expr->expr_type != EXPR_NULL && rank != cons->expr->rank - && (comp->allocatable || cons->expr->rank)) + && (comp->attr.allocatable || cons->expr->rank)) { gfc_error ("The rank of the element in the derived type " "constructor at %L does not match that of the " @@ -824,7 +824,7 @@ resolve_structure_cons (gfc_expr *expr) if (!gfc_compare_types (&cons->expr->ts, &comp->ts)) { t = FAILURE; - if (comp->pointer && cons->expr->ts.type != BT_UNKNOWN) + if (comp->attr.pointer && cons->expr->ts.type != BT_UNKNOWN) gfc_error ("The element in the derived type constructor at %L, " "for pointer component '%s', is %s but should be %s", &cons->expr->where, comp->name, @@ -835,7 +835,7 @@ resolve_structure_cons (gfc_expr *expr) } if (cons->expr->expr_type == EXPR_NULL - && !(comp->pointer || comp->allocatable)) + && !(comp->attr.pointer || comp->attr.allocatable)) { t = FAILURE; gfc_error ("The NULL in the derived type constructor at %L is " @@ -844,7 +844,7 @@ resolve_structure_cons (gfc_expr *expr) comp->name); } - if (!comp->pointer || cons->expr->expr_type == EXPR_NULL) + if (!comp->attr.pointer || cons->expr->expr_type == EXPR_NULL) continue; a = gfc_expr_attr (cons->expr); @@ -1996,7 +1996,7 @@ gfc_iso_c_func_interface (gfc_symbol *sym, gfc_actual_arglist *args, if (!(args_sym->attr.target) && !(args_sym->attr.pointer) && (parent_ref == NULL || - !parent_ref->u.c.component->pointer)) + !parent_ref->u.c.component->attr.pointer)) { gfc_error_now ("Parameter '%s' to '%s' at %L must be either " "a TARGET or an associated pointer", @@ -2084,7 +2084,7 @@ gfc_iso_c_func_interface (gfc_symbol *sym, gfc_actual_arglist *args, } else if ((args_sym->attr.pointer == 1 || (parent_ref != NULL - && parent_ref->u.c.component->pointer)) + && parent_ref->u.c.component->attr.pointer)) && is_scalar_expr_ptr (args->expr) != SUCCESS) { /* Case 1c, section 15.1.2.5, J3/04-007: an associated @@ -3624,7 +3624,7 @@ find_array_spec (gfc_expr *e) if (c == NULL) gfc_internal_error ("find_array_spec(): Component not found"); - if (c->dimension) + if (c->attr.dimension) { if (as != NULL) gfc_internal_error ("find_array_spec(): unused as(1)"); @@ -3897,14 +3897,14 @@ resolve_ref (gfc_expr *expr) case REF_COMPONENT: if (current_part_dimension || seen_part_dimension) { - if (ref->u.c.component->pointer) + if (ref->u.c.component->attr.pointer) { gfc_error ("Component to the right of a part reference " "with nonzero rank must not have the POINTER " "attribute at %L", &expr->where); return FAILURE; } - else if (ref->u.c.component->allocatable) + else if (ref->u.c.component->attr.allocatable) { gfc_error ("Component to the right of a part reference " "with nonzero rank must not have the ALLOCATABLE " @@ -4630,7 +4630,7 @@ resolve_deallocate_expr (gfc_expr *e) case REF_COMPONENT: allocatable = (ref->u.c.component->as != NULL && ref->u.c.component->as->type == AS_DEFERRED); - pointer = ref->u.c.component->pointer; + pointer = ref->u.c.component->attr.pointer; break; case REF_SUBSTRING: @@ -4777,8 +4777,8 @@ resolve_allocate_expr (gfc_expr *e, gfc_code *code) allocatable = (ref->u.c.component->as != NULL && ref->u.c.component->as->type == AS_DEFERRED); - pointer = ref->u.c.component->pointer; - dimension = ref->u.c.component->dimension; + pointer = ref->u.c.component->attr.pointer; + dimension = ref->u.c.component->attr.dimension; break; case REF_SUBSTRING: @@ -7682,7 +7682,7 @@ resolve_fl_derived (gfc_symbol *sym) } } - if (c->ts.type == BT_DERIVED && c->pointer + if (c->ts.type == BT_DERIVED && c->attr.pointer && c->ts.derived->components == NULL && !c->ts.derived->attr.zero_comp) { @@ -7698,11 +7698,11 @@ resolve_fl_derived (gfc_symbol *sym) if (c->ts.type == BT_DERIVED && c->ts.derived && c->ts.derived->components - && c->pointer + && c->attr.pointer && sym != c->ts.derived) add_dt_to_dt_list (c->ts.derived); - if (c->pointer || c->allocatable || c->as == NULL) + if (c->attr.pointer || c->attr.allocatable || c->as == NULL) continue; for (i = 0; i < c->as->rank; i++) @@ -8891,7 +8891,7 @@ resolve_equivalence_derived (gfc_symbol *derived, gfc_symbol *sym, gfc_expr *e) /* Shall not be an object of sequence derived type containing a pointer in the structure. */ - if (c->pointer) + if (c->attr.pointer) { gfc_error ("Derived type variable '%s' at %L with pointer " "component(s) cannot be an EQUIVALENCE object", |