As asked by Paul Richard Thomas on IRC I have committed the following patch to trunk. I’ll commit it to the gcc-5 branch tomorrow.
Dominique Index: gcc/testsuite/ChangeLog =================================================================== --- gcc/testsuite/ChangeLog (revision 234849) +++ gcc/testsuite/ChangeLog (working copy) @@ -1,3 +1,8 @@ +2016-04-09 Dominique d'Humieres <domi...@lps.ens.fr> + + PR fortran/70592 + * gfortran.dg/deferred_character_16.f90: New test. + 2016-04-09 Jakub Jelinek <ja...@redhat.com> PR tree-optimization/70586 Index: gcc/testsuite/gfortran.dg/deferred_character_16.f90 =================================================================== --- gcc/testsuite/gfortran.dg/deferred_character_16.f90 (nonexistent) +++ gcc/testsuite/gfortran.dg/deferred_character_16.f90 (working copy) @@ -0,0 +1,19 @@ +! { dg-do run } +! PR70592 dynamically-allocated character array +! Contributed by Peter Knowles <knowle...@cardiff.ac.uk> +! +PROGRAM main + character(len=7) :: res + CHARACTER(len=:), DIMENSION(:), POINTER :: cp + INTEGER :: i + ALLOCATE(CHARACTER(len=1) :: cp(1:6)) + if (SIZE(cp) /= 6 .or. LBOUND(cp,1) /= 1 .or. UBOUND(cp,1) /= 6) call abort() + cp(1)='1' + cp(2)='2' + cp(3)='3' + cp(4)='4' + cp(5)='5' + cp(6)='6' + write (res, *) cp + if (res /= ' 123456') call abort() +END PROGRAM main