diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2011-08-30 15:34:01 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2011-08-30 15:34:01 +0000 |
commit | 505920d6b128de2b78279486a2a1a95e38f5f940 (patch) | |
tree | 571e9966557aae713059987b1bd1f315293784a7 /gcc/fortran/trans-stmt.c | |
parent | a728a2ada0698cbd8688d5eb6d88d357ec27eb5b (diff) | |
download | gcc-505920d6b128de2b78279486a2a1a95e38f5f940.zip gcc-505920d6b128de2b78279486a2a1a95e38f5f940.tar.gz gcc-505920d6b128de2b78279486a2a1a95e38f5f940.tar.bz2 |
re PR fortran/45170 ([F2003] allocatable character lengths)
2011-08-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/45170
* trans-stmt.c (gfc_trans_allocate): Evaluate the substring.
2011-08-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/45170
* gfortran.dg/allocate_with_source_2.f90: New test
From-SVN: r178329
Diffstat (limited to 'gcc/fortran/trans-stmt.c')
-rw-r--r-- | gcc/fortran/trans-stmt.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c index a911a5b..7d8b4e0 100644 --- a/gcc/fortran/trans-stmt.c +++ b/gcc/fortran/trans-stmt.c @@ -4783,6 +4783,10 @@ gfc_trans_allocate (gfc_code * code) || code->expr3->expr_type == EXPR_CONSTANT) { gfc_conv_expr (&se_sz, code->expr3); + gfc_add_block_to_block (&se.pre, &se_sz.pre); + se_sz.string_length + = gfc_evaluate_now (se_sz.string_length, &se.pre); + gfc_add_block_to_block (&se.pre, &se_sz.post); memsz = se_sz.string_length; } else if (code->expr3->mold |