------- Comment #4 from burnus at gcc dot gnu dot org 2007-12-14 17:19 ------- By the way, your patch does not work, unless I messed up locally. For the example of comment 0 I get "Hayash" and not "Hayashi":
static character(kind=1)[1:6] * A.1[3]= {&"Takata"[1]{ ... Test case: ! { dg-do run } ! ! PR fortran/27997 ! ! Support array constructors with typespec. ! program test implicit none character(15) :: a(3) a = (/ character(len=7) :: 'Takata', 'Tanaka', 'Hayashi' /) if ( len([ character(len=7) :: ]) /= 7) call abort() if ( size([ integer :: ]) /= 0) call abort() if( a(1) /= 'Takata' .or. a(1)(7:7) /= achar(32) & .or. a(1)(15:15) /= achar(32) & .or. a(2) /= 'Tanaka' .or. a(2)(7:7) /= achar(32) & .or. a(2)(15:15) /= achar(32) & .or. a(3) /= 'Hayashi' .or. a(3)(8:8) /= achar(32))& .or. a(1)(15:15) /= achar(32))& call abort() end program test -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27997