PR fortran/113883
gcc/fortran/ChangeLog:
* trans-array.cc (gfc_trans_deferred_array): Set length to zero,
avoiding extraneous diagnostics.
gcc/testsuite/ChangeLog:
* gfortran.dg/allocatable_length.f90: New test.
if (sym->ts.type == BT_CHARACTER
&& !INTEGER_CST_P (sym->ts.u.cl->backend_decl))
{
+ if (sym->ts.deferred && !sym->ts.u.cl->length)
+ gfc_add_modify (&init, sym->ts.u.cl->backend_decl,
+ build_zero_cst (TREE_TYPE (sym->ts.u.cl->backend_decl)));
gfc_conv_string_length (sym->ts.u.cl, NULL, &init);
gfc_trans_vla_type_sizes (sym, &init);
--- /dev/null
+! { dg-do compile }
+! { dg-options "-Werror -Wall" }
+module foo
+ contains
+ subroutine bar
+ character(len=:), allocatable :: s(:)
+ call bah(s)
+ end subroutine bar
+end module foo