! { dg-do run } ! Tests the fix for PR27113, in which character structure ! components would produce the TODO compilation error "complex ! character array constructors". ! ! Test based on part of tonto-2.2; ! Contributed by Paul Thomas ! type BASIS_TYPE character(len=8) :: label end type type(BASIS_TYPE), dimension(:), pointer :: ptr character(8), dimension(2) :: carray allocate (ptr(2)) ptr(1)%label = "Label 1" ptr(2)%label = "Label 2" ! This is the original bug call read_library_data_((/ptr%label/)) carray(1) = "Label 3" carray(2) = "Label 4" ! Mix a character array with the character component of a derived type pointer array. call read_library_data_((/carray, ptr%label/)) ! Finally, add a constant (character(8)). call read_library_data_((/carray, ptr%label, "Label 5 "/)) contains subroutine read_library_data_ (chr) character(*), dimension(:) :: chr character(len = len(chr)) :: tmp if (size(chr,1) == 2) then if (any (chr .ne. (/"Label 1", "Label 2"/))) call abort () elseif (size(chr,1) == 4) then if (any (chr .ne. (/"Label 3", "Label 4","Label 1", "Label 2"/))) call abort () elseif (size(chr,1) == 5) then if (any (chr .ne. (/"Label 3", "Label 4","Label 1", "Label 2", "Label 5"/))) & call abort () end if end subroutine read_library_data_ end