diff options
author | Janus Weil <janus@gcc.gnu.org> | 2009-08-13 21:46:46 +0200 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2009-08-13 21:46:46 +0200 |
commit | bc21d3152f7644fcbd2acf98adbba270c0408c91 (patch) | |
tree | 7ca7b016aeb3b05df501fe81fe97a0e52abdc7b1 /gcc/fortran/parse.c | |
parent | f100a4a841e1247f0ea73c93368306fb86f12954 (diff) | |
download | gcc-bc21d3152f7644fcbd2acf98adbba270c0408c91.zip gcc-bc21d3152f7644fcbd2acf98adbba270c0408c91.tar.gz gcc-bc21d3152f7644fcbd2acf98adbba270c0408c91.tar.bz2 |
re PR fortran/40941 (gfc_typespec: put derived and cl into union)
2009-08-13 Janus Weil <janus@gcc.gnu.org>
PR fortran/40941
* gfortran.h (gfc_typespec): Put 'derived' and 'cl' into union.
* decl.c (build_struct): Make sure 'cl' is only used
if type is BT_CHARACTER.
* symbol.c (gfc_set_default_type): Ditto.
* resolve.c (resolve_symbol, resolve_fl_derived): Ditto.
(resolve_equivalence,resolve_equivalence_derived): Make sure 'derived'
is only used if type is BT_DERIVED.
* trans-io.c (transfer_expr): Make sure 'derived' is only used if type
is BT_DERIVED or BT_INTEGER (special case: C_PTR/C_FUNPTR).
* array.c: Mechanical replacements to accomodate union in gfc_typespec.
* check.c: Ditto.
* data.c: Ditto.
* decl.c: Ditto.
* dump-parse-tree.c: Ditto.
* expr.c: Ditto.
* interface.c: Ditto.
* iresolve.c: Ditto.
* match.c: Ditto.
* misc.c: Ditto.
* module.c: Ditto.
* openmp.c: Ditto.
* parse.c: Ditto.
* primary.c: Ditto.
* resolve.c: Ditto.
* simplify.c: Ditto.
* symbol.c: Ditto.
* target-memory.c: Ditto.
* trans-array.c: Ditto.
* trans-common.c: Ditto.
* trans-const.c: Ditto.
* trans-decl.c: Ditto.
* trans-expr.c: Ditto.
* trans-intrinsic.c: Ditto.
* trans-io.c: Ditto.
* trans-stmt.c: Ditto.
* trans-types.c: Ditto.
From-SVN: r150725
Diffstat (limited to 'gcc/fortran/parse.c')
-rw-r--r-- | gcc/fortran/parse.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c index e4463bd..2552fcd 100644 --- a/gcc/fortran/parse.c +++ b/gcc/fortran/parse.c @@ -2049,24 +2049,24 @@ endType: { /* Look for allocatable components. */ if (c->attr.allocatable - || (c->ts.type == BT_DERIVED && c->ts.derived->attr.alloc_comp)) + || (c->ts.type == BT_DERIVED && c->ts.u.derived->attr.alloc_comp)) sym->attr.alloc_comp = 1; /* Look for pointer components. */ if (c->attr.pointer - || (c->ts.type == BT_DERIVED && c->ts.derived->attr.pointer_comp)) + || (c->ts.type == BT_DERIVED && c->ts.u.derived->attr.pointer_comp)) sym->attr.pointer_comp = 1; /* Look for procedure pointer components. */ if (c->attr.proc_pointer || (c->ts.type == BT_DERIVED - && c->ts.derived->attr.proc_pointer_comp)) + && c->ts.u.derived->attr.proc_pointer_comp)) sym->attr.proc_pointer_comp = 1; /* Look for private components. */ if (sym->component_access == ACCESS_PRIVATE || c->attr.access == ACCESS_PRIVATE - || (c->ts.type == BT_DERIVED && c->ts.derived->attr.private_comp)) + || (c->ts.type == BT_DERIVED && c->ts.u.derived->attr.private_comp)) sym->attr.private_comp = 1; } @@ -2320,7 +2320,7 @@ match_deferred_characteristics (gfc_typespec * ts) { ts->kind = 0; - if (!ts->derived || !ts->derived->components) + if (!ts->u.derived || !ts->u.derived->components) m = MATCH_ERROR; } @@ -2360,8 +2360,8 @@ check_function_result_typed (void) /* Check type-parameters, at the moment only CHARACTER lengths possible. */ /* TODO: Extend when KIND type parameters are implemented. */ - if (ts->type == BT_CHARACTER && ts->cl && ts->cl->length) - gfc_expr_check_typed (ts->cl->length, gfc_current_ns, true); + if (ts->type == BT_CHARACTER && ts->u.cl && ts->u.cl->length) + gfc_expr_check_typed (ts->u.cl->length, gfc_current_ns, true); } @@ -2540,7 +2540,7 @@ declSt: gfc_current_block ()->ts.kind = 0; /* Keep the derived type; if it's bad, it will be discovered later. */ - if (!(ts->type == BT_DERIVED && ts->derived)) + if (!(ts->type == BT_DERIVED && ts->u.derived)) ts->type = BT_UNKNOWN; } |