diff options
author | Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2007-11-03 22:12:03 +0000 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2007-11-03 22:12:03 +0000 |
commit | 83dffdeb44589d502a1e21fc19380bc27e7dfc54 (patch) | |
tree | ae8c90b0319ebd7c47e711f7535fc641f08f902a /gcc/fortran/trans-array.c | |
parent | 847c8ce4d147f2de0d99b517f7557f804e592867 (diff) | |
download | gcc-83dffdeb44589d502a1e21fc19380bc27e7dfc54.zip gcc-83dffdeb44589d502a1e21fc19380bc27e7dfc54.tar.gz gcc-83dffdeb44589d502a1e21fc19380bc27e7dfc54.tar.bz2 |
re PR fortran/33881 (wrong code for assumed length character arrays)
PR fortran/33881
* trans-array.c (gfc_conv_array_parameter): Evaluate
se->string_length instead of the expr->ts.cl->backend_decl.
* gfortran.dg/assumed_charlen_arg_1.f90: New test.
From-SVN: r129874
Diffstat (limited to 'gcc/fortran/trans-array.c')
-rw-r--r-- | gcc/fortran/trans-array.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index 1c47b24..87ef815 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -4972,8 +4972,8 @@ gfc_conv_array_parameter (gfc_se * se, gfc_expr * expr, gfc_ss * ss, int g77) if (expr->expr_type == EXPR_ARRAY && expr->ts.type == BT_CHARACTER) { get_array_ctor_strlen (&se->pre, expr->value.constructor, &tmp); - expr->ts.cl->backend_decl = gfc_evaluate_now (tmp, &se->pre); - se->string_length = expr->ts.cl->backend_decl; + expr->ts.cl->backend_decl = tmp; + se->string_length = gfc_evaluate_now (tmp, &se->pre); } /* Is this the result of the enclosing procedure? */ |