aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-array.c
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2005-11-30 17:26:40 +0000
committerPaul Thomas <pault@gcc.gnu.org>2005-11-30 17:26:40 +0000
commit99c7ab426c16387fb2a27681f54b0ca4ff853b69 (patch)
tree4cab46bed130eb0f0b7437bac89bbc2298702409 /gcc/fortran/trans-array.c
parente541c31f4ca60209f17d3b44d365cfee4659b899 (diff)
downloadgcc-99c7ab426c16387fb2a27681f54b0ca4ff853b69.zip
gcc-99c7ab426c16387fb2a27681f54b0ca4ff853b69.tar.gz
gcc-99c7ab426c16387fb2a27681f54b0ca4ff853b69.tar.bz2
[multiple changes]
2005-11-30 Paul Thomas <pault@gcc.gnu.org> PR fortran/15809 * trans-decl.c (gfc_get_symbol_decl): In the case of automatic character length, dummy pointer arrays, build an expression for unit size of the array elements, to be picked up and used in the descriptor dtype. * trans-io.c (gfc_trans_transfer): Modify the detection of components of derived type arrays to use the gfc_expr references instead of the array descriptor dtype. This allows the latter to contain expressions. 2005-11-30 Erik Edelmann <erik.edelmann@iki.fi> PR fortran/15809 * trans-array.c (gfc_trans_deferred_array): Allow PARM_DECLs past in addition to VAR_DECLs. 2005-11-30 Paul Thomas <pault@gcc.gnu.org> PR fortran/15809 * gfortran.dg/auto_char_dummy_array.f90: New test. From-SVN: r107727
Diffstat (limited to 'gcc/fortran/trans-array.c')
-rw-r--r--gcc/fortran/trans-array.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index 20d3c67..a94d7e8 100644
--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -4173,7 +4173,9 @@ gfc_trans_deferred_array (gfc_symbol * sym, tree body)
gfc_init_block (&fnblock);
- gcc_assert (TREE_CODE (sym->backend_decl) == VAR_DECL);
+ gcc_assert (TREE_CODE (sym->backend_decl) == VAR_DECL
+ || TREE_CODE (sym->backend_decl) == PARM_DECL);
+
if (sym->ts.type == BT_CHARACTER
&& !INTEGER_CST_P (sym->ts.cl->backend_decl))
gfc_trans_init_string_length (sym->ts.cl, &fnblock);