URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [character_array_constructor_1.f90] - Rev 801
Go to most recent revision | Compare with Previous | Blame | View Log
! { 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 <pault@gcc.gnu.org>
!
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
Go to most recent revision | Compare with Previous | Blame | View Log