+2008-09-09 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37411
+ * trans-array.c (gfc_conv_array_parameter): Added assertion that the
+ symbol has an array spec.
+
2008-09-08 Daniel Kraft <d@domob.eu>
PR fortran/37199
&& expr->ref->u.ar.type == AR_FULL);
sym = full_array_var ? expr->symtree->n.sym : NULL;
+ /* The symbol should have an array specification. */
+ gcc_assert (!sym || sym->as);
+
if (expr->expr_type == EXPR_ARRAY && expr->ts.type == BT_CHARACTER)
{
get_array_ctor_strlen (&se->pre, expr->value.constructor, &tmp);
+2008-09-09 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37411
+ * gfortran.dg/array_function_4.f90: New test.
+
2008-09-08 Daniel Jacobowitz <dan@codesourcery.com>
Mark Mitchell <mark@codesourcery.com>
--- /dev/null
+! { dg-do compile }
+
+! PR fortran/37411
+! This used to cause an ICE because of a missing array spec after interface
+! mapping.
+
+! Contributed by Kristjan Jonasson <jonasson@hi.is>
+
+MODULE B1
+CONTAINS
+ subroutine sub()
+ integer :: x(1)
+ character(3) :: st
+ st = fun(x)
+ end subroutine sub
+
+ function fun(x) result(st)
+ integer, intent(in) :: x(1)
+ character(lenf(x)) :: st
+ st = 'abc'
+ end function fun
+
+ pure integer function lenf(x)
+ integer, intent(in) :: x(1)
+ lenf = x(1)
+ end function lenf
+END MODULE B1
+
+! { dg-final { cleanup-modules "B1" } }