[multiple changes]

2007-03-16  Paul Thomas  <pault@gcc.gnu.org>
	    Tobias Burnus  <burnus@net-b.de>

	PR fortran/31188
	* expr.c (find_array_section): Allow
	  non-expression-constant variables.

2007-03-16  Tobias Burnus  <burnus@net-b.de>

	PR fortran/31188
	* gfortran.dg/parameter_array_dummy.f90: New test.

From-SVN: r122987
This commit is contained in:
Tobias Burnus 2007-03-16 11:57:45 +01:00
parent 7c62b943ba
commit 945a98a4b2
2 changed files with 28 additions and 1 deletions

View File

@ -1063,7 +1063,13 @@ find_array_section (gfc_expr *expr, gfc_ref *ref)
if (ref->u.ar.dimen_type[d] == DIMEN_VECTOR) /* Vector subscript. */
{
gcc_assert (begin);
gcc_assert (begin->expr_type == EXPR_ARRAY);
if (begin->expr_type != EXPR_ARRAY)
{
t = FAILURE;
goto cleanup;
}
gcc_assert (begin->rank == 1);
gcc_assert (begin->shape);

View File

@ -0,0 +1,21 @@
! { dg-do run}
! PR fortran/31188
program foo_mod
implicit none
character (len=1), parameter :: letters(2) = (/"a","b"/)
call concat(1, [1])
call concat(2, [2])
call concat(3, [1,2])
call concat(4, [2,1])
call concat(5, [2,2,2])
contains
subroutine concat(i, ivec)
integer, intent(in) :: i, ivec(:)
write (*,*) i, "a" // letters(ivec)
end subroutine concat
end program foo_mod
! { dg-output "1 aa" }
! { dg-output "2 ab" }
! { dg-output "3 aaab" }
! { dg-output "4 abaa" }
! { dg-output "5 ababab" }