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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122987
138bc75d-0d04-0410-961f-
82ee72b054a4
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);
--- /dev/null
+! { 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" }