URL
https://opencores.org/ocsvn/scarts/scarts/trunk
Subversion Repositories scarts
[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [gcc/] [testsuite/] [gfortran.dg/] [pr17612.f90] - Rev 12
Compare with Previous | Blame | View Log
! { dg-do run }
! PR 17612
! We used to not determine the length of character-valued expressions
! correctly, leading to a segfault.
program prog
character(len=2), target :: c(4)
type pseudo_upf
character(len=2), pointer :: els(:)
end type pseudo_upf
type (pseudo_upf) :: p
type t
character(5) :: s(2)
end type
type (t) v
! A full arrays.
c = (/"ab","cd","ef","gh"/)
call n(p)
if (any (c /= p%els)) call abort
! An array section that needs a new array descriptor.
v%s(1) = "hello"
v%s(2) = "world"
call test (v%s)
contains
subroutine n (upf)
type (pseudo_upf), intent(inout) :: upf
upf%els => c
return
end subroutine n
subroutine test(s)
character(len=*) :: s(:)
if ((len (s) .ne. 5) .or. (any (s .ne. (/"hello", "world"/)))) call abort
end subroutine
end program