Commit 505920d6 by Steven G. Kargl

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
parent a728a2ad
2011-08-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/45170
* trans-stmt.c (gfc_trans_allocate): Evaluate the substring.
2011-08-29 Janus Weil <janus@gcc.gnu.org>
PR fortran/50225
......
......@@ -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
......
2011-08-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/45170
* gfortran.dg/allocate_with_source_2.f90: New test
2011-08-30 Jason Merrill <jason@redhat.com>
PR c++/50220
......
! { dg-do run }
! PR 45170
! A variation of a theme for deferred type parameters. The
! substring reference in the source= portion of the allocate
! was not probably resolved. Testcase is a modified version
! of a program due to Hans-Werner Boschmann <boschmann at tp1
! dot physik dot uni-siegen dot de>
!
program helloworld
character(:),allocatable::string
real::rnd
call hello(5, string)
if (string /= 'hello' .or. len(string) /= 5) call abort
contains
subroutine hello (n,string)
character(:),allocatable,intent(out)::string
integer,intent(in)::n
character(20)::helloworld="hello world"
allocate(string, source=helloworld(:n))
end subroutine hello
end program helloworld
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment