diff options
author | Paul Thomas <pault@gcc.gnu.org> | 2013-01-08 06:13:52 +0000 |
---|---|---|
committer | Paul Thomas <pault@gcc.gnu.org> | 2013-01-08 06:13:52 +0000 |
commit | ec947dd39aa440205aa417f7809931b5cd6cda6b (patch) | |
tree | 75220b6492e48442cc1bf53c89e338cc7cddac9d /gcc/fortran/trans-expr.c | |
parent | 2aa617a76a35ea61377a37af7a4573e2242d511d (diff) | |
download | gcc-ec947dd39aa440205aa417f7809931b5cd6cda6b.zip gcc-ec947dd39aa440205aa417f7809931b5cd6cda6b.tar.gz gcc-ec947dd39aa440205aa417f7809931b5cd6cda6b.tar.bz2 |
re PR fortran/55618 (Failures with ISO_Varying_String test suite)
2013-01-08 Paul Thomas <pault@gcc.gnu.org>
PR fortran/55618
* trans-expr.c (gfc_conv_procedure_call): Dereference scalar
character function arguments to elemental procedures in
scalarization loops.
2013-01-08 Paul Thomas <pault@gcc.gnu.org>
PR fortran/55618
* gfortran.dg/elemental_scalar_args_2.f90: New test.
From-SVN: r195004
Diffstat (limited to 'gcc/fortran/trans-expr.c')
-rw-r--r-- | gcc/fortran/trans-expr.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index 9452e27..7b41c65 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -4115,7 +4115,13 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym, parmse.expr = gfc_build_addr_expr (NULL_TREE, parmse.expr); } else - gfc_conv_expr_reference (&parmse, e); + { + gfc_conv_expr_reference (&parmse, e); + if (e->ts.type == BT_CHARACTER && !e->rank + && e->expr_type == EXPR_FUNCTION) + parmse.expr = build_fold_indirect_ref_loc (input_location, + parmse.expr); + } if (fsym && fsym->ts.type == BT_DERIVED && gfc_is_class_container_ref (e)) |